Когда это возможно... вы оставляете скобки в Ruby или нет?
Вы оставляете скобки внутри или снаружи в Ruby?
Ответы (9)
Ruby позволяет опускать скобки, в общем, не поддавайтесь этому искушению.
Скобки облегчают понимание кода. Общий стиль Ruby заключается в их использовании, за исключением следующих случаев:
- Всегда оставляйте пустые скобки
- Круглые скобки могут быть опущены в одной команде, окруженной разделителями ERb — маркеры ERb гарантируют, что код все еще читаем.
- Строка, представляющая собой одну команду и один простой аргумент, может быть записана без круглых скобок. Лично я нахожу, что делаю это все реже и реже, но это все еще прекрасно читается. Мне не нравятся отдельные строки в обычном коде ruby, которые имеют несколько аргументов и не имеют круглых скобок.
- Многие предметно-ориентированные языки на основе Ruby (такие как Rake) не используют круглые скобки, чтобы сохранить более естественное ощущение языка в своих утверждениях.
Я использую скобки в качестве комментариев, чтобы помочь себе в будущем... у которого, вероятно, будет меньше мозговых клеток, чем у меня нынешнего :-)
Нет ничего хуже, чем смотреть на какой-то код, который вы написали 2 года назад, и неправильно его понимать, чтобы что-то сломать, модифицируя его.
Если паренс сэкономит будущему мне несколько минут (или часов) в будущем, я вставлю столько, сколько необходимо, чтобы сделать утверждение кристально ясным.
Я опускаю их, когда работаю с DSL, например, t.column или has_many в rails. В остальное время, как правило, все сводится к ясности, и это, вероятно, равное разделение.
Думаю, я делаю и то, и другое, но определенно сохраняю их, если это повышает читабельность и позволяет избежать двусмысленных утверждений.
Если вы имеете в виду вызовы функций, я всегда ставлю скобки, потому что их всегда легче читать. Если вы имеете в виду условия (if, while), я ставлю скобки только тогда, когда они необходимы.
Я стараюсь опускать их, если это вообще возможно. Я думаю, что это облегчает чтение кода (вообще говоря).
Что обычно более читабельно.
Но я всегда использую круглые скобки, когда вставляю вызовы функций внутри других параметров.
Я склонен опускать их при выполнении утверждений, таких как assert_equal. Может быть, это делается для того, чтобы сделать его похожим на доменный язык.
Если вы занимаетесь программированием в течение длительного времени, у вас, вероятно, будет «чесаться» добавить скобки, и во многих случаях для этого есть веские причины.
Хотя, по моему мнению, код более удобен для глаз, и я еще не сталкивался с проблемой - если вам понадобятся скобки, вы узнаете об этом заранее, прежде чем вам придется запускать сценарий отладки.
if owner.is_a? thing //worked fine
if owner.is_a? thing && x > 1 //not fine
я изучаю рубин всего пару недель, и там, где я работаю, используется наименьшее возможное количество символов, и если вы пришли с любого другого языка, есть кривая обучения, чтобы знать, когда вы передаете неявный хэш, массив символов, переходите к символам в функцию ... я не фанат.
- person Mega Man; 08.11.2016
if owner.is_a? thing and x > 1
- person anna328p; 06.02.2017
and
не имеет того же приоритета оператора, что и &&
- person Mega Man; 06.02.2017