「to_a」メソッドを使用して同等の配列に変換される範囲の例を示す本を読んでいます
irb でコードを実行すると、次の警告が表示されます
warning: default `to_a' will be obsolete
to_a を使用する代わりの正しい方法は何ですか?
配列に範囲を設定する別の方法はありますか?
splat を使用して、範囲を指定して配列を作成できます。
>> a=*(1..10)
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Kernel
Array
メソッドを使用して、
Array (1..10)
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
または to_a を使用して
(1..10).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
これはirbで私のために働きます:
irb> (1..4).to_a
=> [1, 2, 3, 4]
私はそれに気づきます:
irb> 1..4.to_a
(irb):1: warning: default `to_a' will be obsolete
ArgumentError: bad value for range
from (irb):1
おそらく、括弧がありませんか?
(Ruby 1.8.6 パッチレベル 114 を実行しています)
あなたがこれをやっているように聞こえます:
0..10.to_a
警告は、Range#to_a からではなく、Fixnum#to_a からのものです。代わりにこれを試してください:
(0..10).to_a
これをチェックして:
a = [*(1..10), :top, *10.downto( 1 )]