5

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.

3 Answers 3

9
> puts ("ax".."bc").to_a
ax
ay
az
ba
bb
bc
Sign up to request clarification or add additional context in comments.

Comments

3

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

Comments

2

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?

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.