Круглые скобки ()
предназначены для группировки логических или математических выражений и группировки аргументов для вызова функции, например:
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]
Чтобы запутать дело, литералы хеша также могут бытьиспользуется на месте в качестве аргумента для вызова метода без использования фигурных скобок или скобок, если это последний аргумент (спасибо samuil).Кроме того, хеш-литералы можно использовать на месте в квадратных скобках для создания массива из одного элемента, содержащего хэш:
puts 1=>2, 3=>4 #=> 1234
[5=>6, 7=>8] #=> [{5=>6, 7=>8}]
В случае сомнений всегда используйте скобки, чтобы группировать элементы и заключать хэши в фигурные скобки..