if
Следует избегать длительных условий обмотки, если это вообще возможно, но иногда мы все заканчиваем тем, что пишем их. Даже если это очень простое условие, включенные операторы иногда просто очень многословны, поэтому все условие оказывается очень длинным. Какой самый удобный способ их форматирования?
if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) {
thud();
}
или
if (
FoobarBaz::quxQuux(corge, grault)
|| !garply(waldo)
|| fred(plugh) !== xyzzy
) {
thud();
}
или
if (FoobarBaz::quxQuux(corge, grault)
|| !garply(waldo)
|| fred(plugh) !== xyzzy) {
thud();
}
или
thudable = FoobarBaz::quxQuux(corge, grault);
thudable ||= !garply(waldo);
thudable ||= fred(plugh) !== xyzzy;
if (thudable) {
thud();
}
или какие-то другие предпочтения?
coding-style
conditions
deceze
источник
источник
Мне нравится держать операторов в конце, чтобы указать продолжение:
источник
Я большой поклонник значимых имен переменных:
Или рефакторинг как функция, как указано выше.
источник
Я выделяю более сложные подвыражения или все они как переменные типа bool. Тогда логическая логика верхнего уровня оператора if может быть понятна. В той работе, которую я выполняю, это не всегда несколько вещей: ORed или ANDed.
Это особенно хорошо в отладчике, где я могу посмотреть все bools перед выполнением 'if'.
источник
Я склоняюсь к выравниванию операторов в начале новых строк, поэтому я помню, как я комбинирую термины (как для длинной логики, так и для длинной арифметики). Так:
Это работает только в том случае, если я делаю отступ в 2 пробела или устанавливаю в своей среде больше отступа для многострочных предикатов, иначе трудно сказать, где заканчивается предикат и начинается полезный код.
источник
Я фанат следующего:
Таким образом, оно по-прежнему выглядит как выражение if, а не как разбитое на части выражение if. Отступ помогает показать, что это продолжение предыдущей строки.
Вы также можете сделать отступ до тех пор, пока открывающая скобка не окажется в конце предыдущей строки, чтобы она была в конце выражения if, как и должно быть.
источник