Why isn't [1..5] == [1,2,3,4,5]
?
Why isn't [1..5].to_a == [1,2,3,4,5]
?
How to convert from [1..5]
to [1,2,3,4,5]
?
Why isn't [1..5] == [1,2,3,4,5]
?
Why isn't [1..5].to_a == [1,2,3,4,5]
?
How to convert from [1..5]
to [1,2,3,4,5]
?
[1..5]
範囲オブジェクトの 1 つの要素のみを持つ配列です。1..5
[1..5].to_a
まだです[1..5]
(1..5).to_a
は[1,2,3,4,5]
[1..5]
1 つの要素 (範囲オブジェクト) を持つ配列です。それを繰り返し処理しようとするとすべて失敗します。配列には、多くの種類のオブジェクトを含めることができます。上記の例では、範囲を単なる範囲として扱い、そこから任意の配列を直接作成しています。
1.9.3-p125 :008 > (1..5).to_a # Note regular parens.
=> [1, 2, 3, 4, 5]
1.9.3-p125 :009 >
[1..5]から始めて、あなたが述べたことをより厳密に行うには、次のことができます。
1.9.3-p125 :013 > newarray = []
1.9.3-p125 :014 > [1..5][0].each {|e| newarray << e}
=> 1..5
1.9.3-p125 :015 > newarray
=> [1, 2, 3, 4, 5]
1.9.3-p125 :016 >