1. ホーム
  2. ruby

[解決済み] Rubyで配列を一度に初期化するには?

2022-10-20 15:41:55

質問

このように配列を初期化します。

array = Array.new
array << '1' << '2' << '3'

それを1つのステップで行うことは可能でしょうか?もしそうなら、どのように?

どのように解決するのですか?

配列リテラルを使用することができます。

array = [ '1', '2', '3' ]

範囲を指定することもできます。

array = ('1'..'3').to_a  # parentheses are required
# or
array = *('1'..'3')      # parentheses not required, but included for clarity

空白で区切られた文字列の配列の場合は パーセント文字列の構文 :

array = %w[ 1 2 3 ]

また、ブロックを Array.new に渡して、各エントリの値を決定することもできます。

array = Array.new(3) { |i| (i+1).to_s }

最後に、上記の他の答えと同じ3つの文字列の配列を生成しませんが、Ruby 1.8.7+ では配列の作成に列挙子を使用できることにも注意してください。

array = 1.step(17,3).to_a
#=> [1, 4, 7, 10, 13, 16]