Ruby支持的数据类型包括基本的Number、String、Ranges、Symbols,以及true、false和nil这几个特殊值,同时还有两种重要的数据结构——Array和Hash
数值类型(Number)
1、整型(Integer)
整型分两种,如果在31位以内(四字节),那为Fixnum实例。如果超过,即为Bignum实例。
整数范围从 -230 到 230-1,在这个范围内的整数是类 Fixnum 的对象, 当整数值大于或等于2的30次方时( -262 到 262-1),会自动转化为 Bignum 类型。
书写整数时,可以根据需要在数字之间加入下划线而不会影响数字的值,例如:
a = 123_456_789 puts a #123456789
在数字前面加上一个前导符号0b,0,0x分别可以表示二进制,八进制和十六进制,例如:
0b100100 #二进制 0123 #八进制 0xa0 #十六进制
整数运算符方法:
- +,-,*,/:加减乘除运算
- %:取模,4%3 => 1
- |,&,^:按位与,按位或,按位异或
- <<,>>:左移,右移运算
- <=>:比较两个整数大小,前者若比后者大返回1,若相等返回0,若小于返回-1
- []:位操作符号,n[i]返回n的第i个位置
整数常用的方法:
- abs:返回数字的绝对值,-1.abs => 1
- chr:返回数字对应的ASCII编码所对应的符号,65.chr => A
- times:循环整数次的迭代方法,后面跟随代码块,3.times{|i| puts i} => 1,2,3
- downto:从大到小进行迭代,3.downto(1){|i| puts i},循环从3~1,依次输出3,2,1
- upto:从小到大进行迭代
- step:按指定步长进行迭代
- to_s:将整形转变为字符串的类型
浮点型(Float)
表现形式
3.1415926 #浮点值 31415926E-6 #科学记数法
浮点数的运算与整数类似,不过有如下几个比较特别的方法:
- ceil:返回比浮点数大的最小整数,1.2.ceil => 2
- floor:返回比浮点数小的最大整数,1.2.floor => 1
- round:对浮点数四舍五入到一个整数,1.65.round => 2;1.65.round(1) => 1.7
- to_i:返回值截取小数点后数字的整数,1.65.to_i => 1