Иногда предложения no-op могут сделать ваш код более читабельным.
Это может быть вопрос мнения, но вот пример. Предположим, вы создали функцию, которая работает по двум путям unix. Он вычисляет «путь изменения», необходимый для перехода от одного пути к другому. Вы накладываете ограничение на свою функцию, что оба пути должны начинаться с '/' ИЛИ оба не должны.
function chgpath() {
# toC, fromC are the first characters of the argument paths.
if [[ "$toC" == / && "$fromC" == / ]] || [[ "$toC" != / && "$fromC" != / ]]
then
true # continue with function
else
return 1 # Skip function.
fi
Некоторые разработчики захотят удалить no-op, но это будет означать отрицание условия:
function chgpath() {
# toC, fromC are the first characters of the argument paths.
if [[ "$toC" != / || "$fromC" == / ]] && [[ "$toC" == / || "$fromC" != / ]]
then
return 1 # Skip function.
fi
Теперь, на мой взгляд, из предложения if не так ясно, при каких условиях вы хотели бы пропустить выполнение функции. Чтобы исключить бездействие и сделать это четко, вам нужно вынести предложение if из функции:
if [[ "$toC" == / && "$fromC" == / ]] || [[ "$toC" != / && "$fromC" != / ]]
then
cdPath=$(chgPath pathA pathB) # (we moved the conditional outside)
Это выглядит лучше, но во многих случаях мы не можем этого сделать; мы хотим, чтобы проверка выполнялась внутри функции.
Так как часто это происходит? Не слишком часто. Может, раз или два в год. Это случается достаточно часто, чтобы вы знали об этом. Я не уклоняюсь от его использования, когда считаю, что он улучшает читаемость моего кода (независимо от языка).