[]を使う
>> array = ["hello", "world"]
=> ["hello", "world"]
>> [*1..10]
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Array.newを使う
>> Array.new
=> []
>> Array.new(3)
=> [nil, nil, nil]
>> Array.new(3, 3)
=> [3, 3, 3]
%wや%iを使う
使える場合
- 文字列の配列(空白文字を含まない)
- シンボルの配列(空白文字を含まない)
>> %w(Ruby Perl Python)
=> ["Ruby", "Perl", "Python"]
>> %i(Ruby Perl Python)
=> [:Ruby, :Perl, :Python]
結局どの定義がいいの?
Githubとクックパッドのスタイルガイドを読んだ感じだと、Array.newは引数がない場合は使わないほうが良い。
あとは、%記法(%wと%i)が使える場合は、使うようにする。
もっと詳しく見たい場合は参考文献のリンクからスタイルガイドを見て見てください。すごくためにまりました。
# 悪い例
arr = Array.new
hash = Hash.new
# 良い例
arr = []
hash = {}
# 悪い例
STATES = ['draft', 'open', 'closed']
STATES = [:draft, :open, :closed]
# 良い例
STATES = %w(draft open closed)
STATES = %i(draft open closed)