Іноді безвідмовні пропозиції можуть зробити ваш код більш читабельним.
Це може бути питанням думки, але ось приклад. Припустимо, ви створили функцію, яка працює, провівши два шляху 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
Деякі розробники захочуть видалити неопераційний, але це означатиме заперечення умовного:
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)
Це виглядає краще, але багато разів ми не можемо цього зробити; ми хочемо, щоб перевірка була зроблена всередині функції.
То як часто це відбувається? Нечасто. Може, раз чи два на рік. Це трапляється досить часто, щоб ви мали про це знати. Я не цураюся його використання, коли я думаю, що це покращує читабельність мого коду (незалежно від мови).