I use irb.
I write the code below."ax".."bc"
I expect"ax""ay""az""ba"bb""bc"
But the result is just"ax".."bc"
How should I correct? Thanks.
> puts ("ax".."bc").to_a
ax
ay
az
ba
bb
bc
The range 'ax' .. 'bc'
does represent the values that you expect but it doesn't generate them until it really needs to (as a way to save time and space in case you don't end up using each value). You can access them all via an interator or conversion to an array:
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
Range is a builtin in construct, internally storing start and ending point (and whether it's an end-inclusive range) for efficiency. So IRB will just show you the literal for it.
What do you want to do?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With