2011-09-30 24 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