Ruby语言入门(19)- 内部类 -Numeric
上一篇 /
下一篇 2013-02-05 16:07:21
/ 个人分类:语言
Numeric是数值的抽象类.包含Integer和Float类。
Integers是整数的抽象类. 其子类包括Fixnum 和 Bignum.
Float类是浮点数的类.
方法有:
self + other和
self - other差
self * other积
self / other商
self % other余数(模)
self ** other幂
算术操作符
self <=> other
self = = other
self < other
self <= other
self > other
self >= other
比较操作符.
~ self非
self | other或
self & other与
self ^ other异或
位操作符.
self << bits
self >> bits
移位操作符. 向右(左)移动bits位.
[]
返回数组
[1.0]
=>[1.0]
+ self
返回self
+1
=>1
+-1
=>-1
-1
=>-1
--1
=>1
-1.abs
=>1
ceil
返回一个等于或大于self的最小的整数.
1.3.ceil
=>2
68.chr
=>"D"
coerce(number)
将number变为可直接与自己进行计算的类型,然后将其存入形如[number, self]的数组并返回它.
a=1
a.coerce(2.0)
=>[2.0, 1.0]
div(other)
返回self除以other的整数商.
3.div(2)
=> 1
divmod(other)
以数组[q, m]的形式返回self除以other所得的商(q)和余数(m).
downto(min) {|n| ... }
循环起点为self,步长为-1,循环终点为min
5.downto(1) {|n| puts n}
5
4
3
2
1
=>5
eql?
是否相等
1.eql?(2)
=>false
1.2.floor
=>1
1.2.ceil
=>2
finite?
若某数值既非∞又非NaN则返回真
1.0.finite?
=>true
hash
返回数值的hash
1.hash
=>167445871
infinite?
若某数值为+∞则返回1, 若为-∞则返回-1, 除此以外返回nil.浮点数除以0得∞.
integer?
若self为整数则返回真.
-1.ineger?
=>true
id2name (no method)
返回与Symbol对象的整数值(可用Symbol#to_i获得该整数值)相对应的字符串. 若没有与整数相对应的符号的话就返回nil.
modulo(other)
3.modulo(4)
=>3
nan?
当某数值为NaN(Not a number)时返回真. 浮点数的0除以0得NaN.
1.0.nan?
=>false
next
返回下一个紧跟的整数,等同于succ
3.next
=>4
nonzero?
0则返回nil,非0则返回self.
1.nozero?
=>1
quo(other)
除法运算,它会尽量返回一个接近实数商(quotient)的值.
1.quo(3)
=>(1/3)
remainder(other)
返回self除以other后的余数r
1.4.round
=>1
1.5.round
=>2
size
返回所占的bit数
1.size
=>4
22342342342342324.size
=>8
succ
返回下一个紧跟的整数
3.succ
=>4
times {|n| ... }
循环self(从0到self-1)次
5.times {|n| puts n}
0
1
2
3
4
=>5
to_i
to_int
返回self的整数部分.
1.3.to_int
=>1
1.to_f
=>1.0
to_s
to_s(base)
将整数变为10进制字符串形式.如果带参数,以base为进制,从2-36,转换为字符
10.to_s
=>"10"
10.to_s(2)
=>"1010"
to_sym (no method)
返回与对象的整数值self相对应的Symbol对象
truncate
舍弃小数点后面的部分.
1.3.zero?
=>false
step(limit) {|n| ... }
step(limit, step) {|n| ... }
循环执行块的内容,循环起点是self,步长为step,终点是limit. 同时,step也可以是负数(缺省设置为1).另外,limit和step还可以是Float等.
1.1.step(1.5, 0.1) {|n| puts n}
1.1
1.2
1.3
1.4
1.5
upto(max) {|n| ... }
循环起点为self,步长为1,循环终点为max.
0.upto(5) {|n| puts n}
0
1
2
3
4
5
=>0
大多数与数值有关的方法都会在子类中得到重新定义. 这一方面是为了提高效率,另一方面是因为在上级抽象类中无法定义具体细节所致. 请参考下表来了解一下到底各个类中有些什么方法.
收藏
举报
TAG: