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

- self 
反转self的符号后将其返回.

-1
=>-1
--1
=>1

abs 
返回self的绝对值.

-1.abs
=>1

ceil 
返回一个等于或大于self的最小的整数.

1.3.ceil
=>2

chr
返回数字对应的字符.

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).

7.divmod(2) 
=> [3,1]

downto(min) {|n| ... }
循环起点为self,步长为-1,循环终点为min

5.downto(1) {|n| puts n}
5
4
3
2
1
=>5

eql?
是否相等

1.eql?(2)
=>false

floor
返回一个不超过self的最大的整数.

1.2.floor
=>1
1.2.ceil
=>2

finite?
若某数值既非∞又非NaN则返回真

1.0.finite?
=>true

hash
返回数值的hash

1.hash
=>167445871

infinite?
若某数值为+∞则返回1, 若为-∞则返回-1, 除此以外返回nil.浮点数除以0得∞.

1.0.infinite?
=>nil

integer?
若self为整数则返回真.

-1.ineger?
=>true

id2name (no method)
返回与Symbol对象的整数值(可用Symbol#to_i获得该整数值)相对应的字符串. 若没有与整数相对应的符号的话就返回nil.

modulo(other)
返回self除以other后的余数m

3.divmod(4)
=>[0,3]
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

3.divmod(1)
=>[3,0]
3.remainder(1)
=>0

round
返回最接近self的整数.

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

to_f
将数值变为浮点数(Float).

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.truncate
=>1

zero?
若为0则返回真.

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:

 

评分:0

我来说两句

日历

« 2024-04-18  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 150399
  • 日志数: 185
  • 文件数: 6
  • 建立时间: 2007-08-06
  • 更新时间: 2015-01-06

RSS订阅

Open Toolbar