Таким образом, большой допуск Ruby, чтобы иногда использовать фигурные скобки и не ПОТРЕБОВАТЬ их привел к большому количеству беспорядка для меня, поскольку я пытаюсь изучить направляющие и когда/где использовать каждого и почему?
Иногда параметры или значения передаются как (@user, @comment)
и другие времена они, кажется, [ :user => comment ]
и все еще другие это справедливо: :action => 'edit'
Я говорю о нас [] по сравнению с () по сравнению с {}
Каковы правила? И есть ли какие-либо приемы, которые необходимо помочь Вам помнить?
Круглые скобки ()
предназначены для группировки логических или математических выражений и группировки аргументов для вызова функции, например:
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}]
В случае сомнений всегда используйте круглые скобки для группировки элементов и заключайте хеши в фигурные скобки.