Фигурные скобки: [Скобки], (круглые скобки) и {Curlies} в Ruby & Rails

Таким образом, большой допуск Ruby, чтобы иногда использовать фигурные скобки и не ПОТРЕБОВАТЬ их привел к большому количеству беспорядка для меня, поскольку я пытаюсь изучить направляющие и когда/где использовать каждого и почему?

Иногда параметры или значения передаются как (@user, @comment) и другие времена они, кажется, [ :user => comment ] и все еще другие это справедливо: :action => 'edit'

Я говорю о нас [] по сравнению с () по сравнению с {}

Каковы правила? И есть ли какие-либо приемы, которые необходимо помочь Вам помнить?

8
задан Andreas Rejbrand 24 July 2010 в 21:06
поделиться

1 ответ

Круглые скобки () предназначены для группировки логических или математических выражений и группировки аргументов для вызова функции, например:

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}]

В случае сомнений всегда используйте круглые скобки для группировки элементов и заключайте хеши в фигурные скобки.

22
ответ дан 5 December 2019 в 07:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: