001 | #coding:utf-8 |
002 | #熟悉ruby基本数据类型 |
003 |
004 |
005 |
class Ruby01
|
006 |
puts "基本数字类型"
|
007 |
puts 1
|
008 |
puts 1.0
|
009 |
puts 1.class #输出Fixnum
|
010 |
puts 1.0.class #输出Float
|
011 |
puts 1.0.class.class #输出Class
|
012 |
|
013 |
puts
|
014 |
puts "算数基本操作"
|
015 |
puts 4/2
|
016 |
puts 4/2.0
|
017 |
puts 4.0/2.0
|
018 |
puts 4*2
|
019 |
puts 4**2
|
020 |
puts 4%2
|
021 |
|
022 |
puts
|
023 |
puts "文本"
|
024 |
puts '这是第一个ruby程序'\
|
025 |
'使用单引号可以跨越多行'
|
026 |
puts "双引号使用"
|
027 |
puts "4/2=#{4/2}" #双引号中可以使用变量和表达式,单引号下不行,会当做字符串输出
|
028 |
puts "圆周率是%.4f"%Math::PI #相当于 printf"圆周率是%.4f"%Math::PI
|
029 |
|
030 |
puts
|
031 |
puts "访问字符串和子字符串"
|
032 |
s="hello"
|
033 |
puts s[0]
|
034 |
puts s[s.length()-1]
|
035 |
puts s[-1]
|
036 |
puts s[-2]
|
037 |
puts s[-s.length()]
|
038 |
puts s[s.length()]
|
039 |
puts s[s.length()].class #输出NilClass
|
040 |
|
041 |
puts
|
042 |
puts s[0,3]
|
043 |
puts s[-3,5]
|
044 |
puts s[0,-2].class
|
045 |
puts s[2..4]
|
046 |
|
047 |
|
048 |
puts
|
049 |
s[s.length(),0]="world"
|
050 |
puts s
|
051 |
s[5,0]=","
|
052 |
puts s
|
053 |
s[5,5]=""
|
054 |
puts s
|
055 |
|
056 |
puts
|
057 |
s="字符串迭代"
|
058 |
puts s
|
059 |
s.each_char{|x| print"#{x}-"}
|
060 |
|
061 |
#数组
|
062 |
=begin
|
063 |
ruby中数组用逗号分割元素
|
064 |
数组下标从0开始
|
065 |
[]数组长度为0
|
066 |
each方法可以遍历一个数组
|
067 |
=end
|
068 |
puts
|
069 |
puts "数组"
|
070 |
arr =[1,2,3];arr.each{ |x|print"#{x},"};
|
071 |
puts
|
072 |
arr =[-10...0,0..10,]
|
073 |
puts "arr数组第一个元素为数组";arr[0].each{|x|print"#{x},"};
|
074 |
puts "arr数组第二个元素为数组";arr[1].each{|x|print"#{x}-"};
|
075 |
|
076 |
|
077 |
|
078 |
puts
|
079 |
puts "数组创建"
|
080 |
puts "empty=Array.new():#{Array.new()}"
|
081 |
puts "nils=Array.new(3):#{Array.new(3)}"
|
082 |
puts "0=Array.new(4,0):#{Array.new(4,0)}"
|
083 |
puts "copy=Array.new(nils):#{Array.new(arr)}" #数组拷贝
|
084 |
puts "count =Array.new(3):#{Array.new(3){|x| x+1}}" #元素索引填充数组
|
085 |
|
086 |
|
087 |
|
088 |
puts
|
089 |
puts "数组运算"
|
090 |
=begin
|
091 |
ruby中是可变数组
|
092 |
>>可以给数组添加数据
|
093 |
>>可以添加多条数据
|
094 |
|取合集
|
095 |
&取交集
|
096 |
=end
|
097 |
arr0=[]
|
098 |
arr0<<1
|
099 |
arr0<<2<<3
|
100 |
|
101 |
puts "#{arr0}"
|
102 |
arr0<<[4,5,6]
|
103 |
puts "#{arr0}"
|
104 |
arr1=[1,3,2,5,4]
|
105 |
arr2 =[2,3]
|
106 |
puts "取并集:{arr1 | arr2}-->#{arr1|arr2}"
|
107 |
puts "取并集:{arr2 | arr1}-->#{arr2|arr1}"
|
108 |
puts "取交集:{arr1 & arr2}-->#{arr1&arr2}"
|
109 |
puts "取交集:{arr2 & arr1}-->#{arr2&arr1}"
|
110 |
|
111 |
#对象
|
112 |
=begin
|
113 |
equal比较对象
|
114 |
eql比较对象值
|
115 |
==比较值
|
116 |
|取合集
|
117 |
&取交集
|
118 |
object_id用来比较是否是同一个对象
|
119 |
|
120 |
=end
|
121 |
puts
|
122 |
puts "对象比较"
|
123 |
obj1="ruby"
|
124 |
obj2=obj3="ruby"
|
125 |
|
126 |
puts obj1.equal?(obj2)
|
127 |
puts obj2.equal?(obj3)
|
128 |
puts obj1.eql?(obj2)
|
129 |
puts obj2.eql?(obj3)
|
130 |
puts "obj1的obj1.object_id=#{obj1.object_id},obj2的obj2.object_id=#{obj2.object_id},obj3的obj3.object_id=#{obj3.object_id}"
|
131 |
puts 1==1.0 #==比较,可以进行值转换
|
132 |
puts 1.eql?(1.0) #eql比较,不能进行值转换
|
133 |
puts "0==nil:#{0==nil}"#判断是否为nil 另一种方法0.nil?
|
134 |
=begin
|
135 |
to_i,to_f,to_s用来转换成Integer,Float,string类型
|
136 |
=end
|
137 |
puts
|
138 |
puts "类型转换"
|
139 |
s1=1
|
140 |
puts "s1是:#{s1.class}"
|
141 |
s2="1"
|
142 |
puts "s2是:#{s2.class}"
|
143 |
s3=1.0
|
144 |
puts "s3是:#{s3.class}"
|
145 |
s4=s1.to_s()
|
146 |
puts "s4是:#{s4.class}"
|
147 |
s5=s2.to_i()
|
148 |
puts "s5是:#{s5.class}"
|
149 |
puts "s2==s4:#{s2==s4}"
|
150 |
puts "s1==s5:#{s1==s5}"
|
151 |
|
152 |
|
153 |
|
154 |
155 | end |
156 | #new()创建对象 |
157 |
e =Example01.new();
|
158 |
159 | print e |
本文将带你从Ruby的基本数据类型开始,逐步了解算数操作、文本处理、字符串访问、数组操作和数组运算等核心概念。

被折叠的 条评论
为什么被折叠?



