从结束值创建一系列字符串

时间:2011-09-30 23:35:37

标签: ruby range

我使用irb。

我写下面的代码。
"ax".."bc"
我期待着 "ax""ay""az""ba"bb""bc"

但结果只是
"ax".."bc"

我该如何纠正? 感谢。

3 个答案:

答案 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将向您展示它的文字。

你想做什么?