2011-09-30 50 views

回答

9
> puts ("ax".."bc").to_a 
ax 
ay 
az 
ba 
bb 
bc 
2

範圍是一個內置的構造,在內部存儲起點和終點(以及它是否是一個包含終點的範圍)以提高效率。所以IRB會告訴你它的字面意思。

你想做什麼?

3

範圍'ax' .. 'bc'的確代表了您期望的值,但是直到真正需要時纔會生成它們(作爲在不最終使用每個值的情況下節省時間和空間的一種方式)。您可以通過interator訪問它們或轉換爲陣列:

r = 'ax' .. 'bc' # => "ax" .. "bc" 
r.class # => Range 
r.to_a # => ["ax", "ay", "az", "ba", "bb", "bc"] 
r.to_a.class # => Array 
r.each {|x| puts x} 
ax 
ay 
az 
ba 
bb 
bc