我使用irb。
我写下面的代码。
"ax".."bc"
我期待着
"ax""ay""az""ba"bb""bc"
但结果只是
"ax".."bc"
我该如何纠正? 感谢。
答案 0 :(得分:9)
> puts ("ax".."bc").to_a
ax
ay
az
ba
bb
bc
答案 1 :(得分:3)
范围'ax' .. 'bc'
确实代表了您期望的值,但在真正需要之前它不会生成它们(作为节省时间和空间的方法,以防您最终不使用每个值) 。您可以通过交互器或转换为数组来访问它们:
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
答案 2 :(得分:2)
Range是一个内置的构造,内部存储开始和结束点(以及它是否是一个包含端点的范围)以提高效率。因此,IRB将向您展示它的文字。
你想做什么?