Klammern ()
dienen der Gruppierung logischer oder mathematischer Ausdrücke und der Gruppierung von Argumenten für einen Funktionsaufruf, z. B.:
a = 2 * (3 + 4)
b = (x==y) || (m==n)
Hash.new.send('[]=', :a, :b)
Gelockte Klammern {}
werden für Hash-Literale und Blöcke verwendet, z. B.:
h = {1=>2, 2=>3}
h.each {|k,v| puts k+v}
Eckige Klammern []
werden für Array-Literale, Array-Indizierung und -Slicing sowie für das Abrufen aus einem Hash verwendet, z. B.:
arr = [1, 2, 3]
two = arr[1]
three = h[2]
Um die Sache zu verwirren, können Hash-Literale auch an Ort und Stelle als Argument für einen Methodenaufruf verwendet werden, ohne dass geschweifte Klammern oder Klammern erforderlich sind, solange es sich um das letzte Argument handelt (danke samuil). Außerdem können Hash-Literale in eckigen Klammern verwendet werden, um ein Array mit nur einem Element zu erstellen, das den Hash enthält:
puts 1=>2, 3=>4 #=> 1234
[5=>6, 7=>8] #=> [{5=>6, 7=>8}]
Verwenden Sie im Zweifelsfall immer Klammern, um Elemente zu gruppieren, und schließen Sie Ihre Hashes in geschweifte Klammern ein.