В Ruby любой оператор имеет приоритет над вызовами методов, например операторы оцениваются первыми.
Однако пример Math.sqrt 2 + 2
является хорошей иллюстрацией того, насколько трудно читать и не интуитивно понятно, что можно оставить скобки. Можно ожидать, что Math.sqrt(2) + 2
будет оцениваться здесь.
Когда вы сталкиваетесь с такой строкой, вы можете подумать: что задумал кодер? Это ошибка?
Всегда полезно использовать круглые скобки, когда вы можете, чтобы прояснить, что вы хотите,
особенно когда есть вызов метода или несколько операторов - это просто хороший стиль и подход с минимальным риском (например, не делайте предположений, но проясняйте себя с помощью скобок).
Нет ничего плохого в том, чтобы добавить в скобки дополнительные скобки, но если их пропустить, это может повредить.
Вот хороший пример, с которым я недавно столкнулся:
def foo(arg)
raise "error"
end
x = foo 4 rescue 7
x
=> nil # oops!
x = foo(4) rescue 7
x
=> 7
Надеюсь, это прекрасно иллюстрирует, почему важно использовать круглые скобки
Также:
Проверьте здесь, в разделе «Вызов метода»: http://ruby -doc.org / docs / ProgrammingRuby / html / tut_methods.html
Цитата:
[...] Если нет
неоднозначность вы можете опустить скобки вокруг списка аргументов, когда
вызов метода. [...] Однако, за исключением самых простых случаев, мы не
порекомендуйте --- есть некоторые тонкие проблемы, которые могут сбить вас с толку
вверх. [В частности, вы должны использовать скобки при вызове метода, который
сам параметр для вызова другого метода (если это не последний
параметр).] Наше правило простое: если есть сомнения, используйте
Скобки.
Смотри также: http://phrogz.net/programmingruby/language.html