ruby中的標准類型——數字
ruby支持整數和浮點數。整數可以是任意長度(其最大值取決于系統內存的大小)。一定范圍的整數(通常是-2e30到2e30-1或-2e62到 2e62-1)在內部以二進制形式存儲,它們是Fixnum類的對象。這個范圍之外的整數存儲在Bignum類的對象中(目前實現為一個可變長度的短整型集合)。ruby會自動管理它們之間的來回轉換。
num=81
6.times do
puts "#{num.class}:#{num}"
num*=num
end
輸出:
Fixnum:81
Fixnum:6561
Fixnum:43046721
Bignum:1853020188851841
Bignum:3433683820292512484657849089281
Bignum:11790184577738583171520872861412518665678211592275841109096961
在書寫整數時,你可以選擇一個可選的前導符號,可選的進制指示符:0(是零不是字母o)表示八進制,0d表示十進制,0x表示十六進制,0b表示二進制。下畫線在數字串中被忽視。
p 123456
p 0d123456
p 123_456
p -543
p 0xaabb
p 0377
p -0b10_1010
p 123_456_789_123_456_789
輸出:
123456
123456
123456
-543
43707
255
-42
123456789123456789
控制字符的整數值可以戀用?\C-x和?\cx生成。元字符可以用?\M-x生成。元字符和控制字符的組合可以使用?\M-\C-x生成。可以用?\\序列得到反斜線字符的整數值。
p ?a
p ?
p ?C-a
p ?M-a
p ?M-C-a
p ?C-?
輸出:
97
10
1
225
129
127
整數支持的几种迭代器。
3.times {print "X"}
1.upto(5){|i| print i," "}
99.downto(95){|i| print i," "}
50.step(80,5){|i| print i," "}
輸出:
XXX 1 2 3 4 5 99 98 97 96 95 50 55 60 65 70 75 80