LoginSignup
6

More than 5 years have passed since last update.

【Ruby】[ ]またはnewを使った配列の生成方法まとめ

Last updated at Posted at 2018-05-01

配列クラスの生成には、Arrayクラスのクラスメソッドである[]メソッドやnewメソッドの他に、配列式と呼ばれる記法もあるのですが、今回は[ ]またはnewを使った方法についてまとめてみました。勘違いしているところなどありましたらご教授お願いします。

[ ]を使った生成 - 配列リテラル

配列の生成(その1)

a = [1, 2, 3]
=> [1, 2, 3]

コメント欄より追記 18/05/02
上でArrayクラスのクラスメソッドの紹介と書いたのですが、こちらはクラスメソッドではなく、配列リテラルでした。失礼いたしました(_ _)

[ ]を使った生成

配列の生成(その2)

[ ] の引数に要素を指定。

Array[1, 2, 3]
=> [1, 2, 3]

コメント欄より追記 18/05/02
この書き方は、Arrayのサブクラスのインスタンスを作成しやすくするためのもの。
詳しくはRuby2.5のリファレンスか、下記のコメント欄をご覧ください。

newを使った生成

配列の生成(その3)

引数に配列の長さと、初期値を指定。

Array.new(2, 'hello')
=> ['hello', 'hello']

配列の生成(その4)

引数に配列を指定。
引数で渡された配列を複製する。

a = [1, 2, 3]
=> [1, 2, 3]

a.object_id
=> 70347435534940


arr = Array.new([1, 2, 3])
=> [1, 2, 3]

arr.object_id
=> 70347435491080

配列の生成(その5)

引数に配列の長さと、ブロックを指定。

Array.new(2){|i| i * 2}
=> [0, 2]

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6