Есть и другие способы выразить это, но вы написали это идиоматически в первый раз.Хотя авторы склонны опускать фигурные скобки всякий раз, когда они могут, вы все равно можете найти примеры такого кода на всем протяжении Язык программирования AWK .Они должны знать.
Похоже, что Ахо, Вайнбергер и Керниган имеют опыт многовекового развития языков, синтаксис которых происходит от C. И когда они пишут что-то вроде этого
if (a * 5 >= NR)
print FILENAME " " NR " " a
прекрасно сообщает, что блок, следующий за оператором if
, должен содержать один и только один оператор.
У меня значительно меньше многовекового опыта.Всякий раз, когда я читаю что-то в этом роде, он прекрасно сообщает, что а) кто-то забыл напечатать {} и б) кто-то еще собирается внести ошибку, добавив оператор в этот блок без добавления фигурных скобок.
На протяжении многих лет я приучал себя печатать это всякий раз, когда набираю if
.
if () {}
Затем я возвращаюсь и заполняю его, ломая строки, если мне нужно,В моем обычном редакторе «if» автоматически расширяется до «if () {}».Я почти уверен, что ни разу не опускал фигурные скобки с середины 1980-х годов.