括弧()
は、論理式または数式をグループ化し、引数を関数呼び出しにグループ化するためのものです。たとえば、次のようになります。
a = 2 * (3 + 4)
b = (x==y) || (m==n)
Hash.new.send('[]=', :a, :b)
中括弧{}
は、ハッシュ リテラルとブロックに使用されます。次に例を示します。
h = {1=>2, 2=>3}
h.each {|k,v| puts k+v}
角括弧[]
は、配列リテラル、配列のインデックス付けとスライス、およびハッシュからのフェッチに使用されます。次に例を示します。
arr = [1, 2, 3]
two = arr[1]
three = h[2]
問題を混乱させるために、最後の引数である限り、中括弧や括弧を必要とせずに、ハッシュリテラルをメソッド呼び出しの引数としてインプレースで使用することもできます (thanks samuil)。さらに、ハッシュ リテラルを角括弧内で使用して、ハッシュを含む単一項目の配列を作成できます。
puts 1=>2, 3=>4 #=> 1234
[5=>6, 7=>8] #=> [{5=>6, 7=>8}]
疑わしい場合は、常に括弧を使用して項目をグループ化し、ハッシュを中括弧で囲みます。