
Существует горячая дискуссия вокруг одиночных операторов и того, должны ли они иметь фигурные скобки или нет.
В C++, C#, Java и Javascript одиночный оператор без фигурных скобок является валидным, некоторые пользуются этой возможностью, а другие нет.
Например
if(ifTrue)
MowTheLawn();
for(var index; index > 10; index++)
ChopWood();
foreach(var dollar in money)
BuyLollipop();
while(untilTheEnd)
Read();
Аргументы против фигурных скобок в однострочных операторах
Аргументы против фигурных скобок заключаются в более лаконичном синтаксисе, меньшем количестве символов для набора и валидном синтаксисе. Почему бы не воспользоваться этим?
Аргументы за фигурные скобки в однострочных операторах
Аргументы за фигурные скобки - это согласованность, меньше ошибок и более естественное восприятие при чтении.
В статье, написанной Джоном Абрамсом под названием Однострочные операторы ‘if’, Джон объясняет, как дефект в TLS-реализации Apple был введен в результате однострочного оператора if без фигурных скобок. Джон продолжает говорить, что хотя опускание фигурных скобок в однострочных операторах более лаконично, предотвращение дефектов важнее лаконичности.
Джон предлагает компромисс - разрешить однострочные операторы, если они действительно находятся на одной строке:
if(ifTrue) MowTheLawn();
Я разделяю мысли Джона, опускание фигурных скобок в однострочных операторах не стоит той пользы, которую это дает. Это заставляет разработчика рассматривать два варианта валидного синтаксиса. Это может показаться не таким уж плохим, но утомительно принимать это решение каждый раз, когда вы сталкиваетесь с оператором if. Следующий эффект заключается в том, что инженер экономит несколько нажатий клавиш и перекладывает бремя на будущих читателей для разбора своего кода.
Для разработчиков C# Microsoft заняла сторону в своих соглашениях по кодированию, которые требуют фигурных скобок.
Когда мы используем фигурные скобки во всех случаях независимо от количества строк, то, что находится в области видимости, а что нет, становится очень ясным. Это делает код менее подверженным ошибкам и более согласованным, хотя некоторые могут спорить с этим утверждением, я считаю его более легким для чтения.
Автор: Чак Конвей специализируется на разработке программного обеспечения и генеративном ИИ. Свяжитесь с ним в социальных сетях: X (@chuckconway) или посетите его на YouTube.