Следует ли всегда помещать круглые скобки вокруг троичного оператора?

Чекстайл жалуется на следующее:

return (null == a ? a : new A());

и говорит, что паренсы не нужны.

В то время как утверждение, безусловно, прекрасно работает без них, с их присутствием это кажется намного более читабельным - иначе, когда я читаю это, я склонен видеть:

return null

сначала, а затем нужно сделать паузу, чтобы рассмотреть оставшуюся часть

== a ? a : new A(); 

, так как мой мозг уже пошел одним путем

Кроме того, я склонен делать то же самое всякий раз, когда я вижу троичного оператора, если только он не сгруппирован в парены.

Итак: должны ли парены вокруг троицы быть стандартом де-факто? Есть ли какая-либо причина не помещать их туда?

8
задан Tom Tresansky 1 September 2010 в 17:48
поделиться

2 ответа

Нет, это не должно быть стандартом де-факто. Я предпочитаю без скобок.

Я думаю, что единственная причина, по которой они должны быть здесь, — это принудительный порядок оценки или уточнение запутанной строки.

2
ответ дан 5 December 2019 в 10:37
поделиться

Поскольку основание для вашего вопроса связано с актом чтения кода , я подойду к вопросу с этой точки зрения.

Один из основных принципов так называемых программ обучения «скорочтению» заключается в том, что они пытаются заставить читателя развить гештальт строки текста, а не читать его последовательно, слово за словом. -слово . Вы можете попытаться взять страницу из их книги и отступить от своего кода — буквально, если это необходимо — чтобы получить представление о полной строке, а не рассматривать акт чтения, как если бы это был акт разбора токена за токеном.

В качестве альтернативы вы можете использовать редактор, который позволяет настраивать стили: вы можете сделать тернарный оператор другим цветом, чтобы он бросался в глаза. Notepad++, например, имеет ряд встроенных тем, которые делают это, как и многие другие редакторы.

0
ответ дан 5 December 2019 в 10:37
поделиться
Другие вопросы по тегам:

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