В Ruby это обычно необязательно.
Ruby стремится к минимализму, поэтому их часто избегают.
Иногда они требуются, например, в rspec Ожидается, где
expect a.to be true
должно быть
expect(a).to be true
Если при вызове метода, имеющего параметр, не использовать ни символов, ни пустых символов, получается ArgumentError
, если для параметра не задано значение по умолчанию, то есть
def a(x=1)
Другое соображение - когда вы хотите вызвать метод для результата чего-либо, когда вам нужно, чтобы этот метод был явно в конечном результате, то есть
"br" + "own".upcase
brOWN
Однако
("br" + "own").upcase
BROWN
Наконец, когда я говорю о ясности, иногда может быть лучше иметь их, даже если в этом нет особой необходимости. Обычно это в составных выражениях, а не в зависимости от приоритета оператора и т. Д. Или если вы хотите, чтобы выражение, которое специально не выполнялось стандартным приоритетом оператора, и вы хотите, чтобы ваша собственная группировка и порядок операций, например:
irb(main):007:0> 5 + 6 * 2
=> 17
irb(main):008:0> (5 + 6) * 2
=> 22
Как указал Ник, единственным осложнением является super
, где super
или super()
проходят по пармсу, но super(a,b)
вызывает super
с ... a
, b
в качестве параметров