A volte le clausole no-op possono rendere il tuo codice più leggibile.
Può essere una questione di opinione, ma ecco un esempio. Supponiamo che tu abbia creato una funzione che funziona prendendo due percorsi unix. Calcola il "percorso di modifica" necessario per passare da un percorso all'altro. Metti una restrizione sulla tua funzione in base alla quale i percorsi devono iniziare entrambi con una "/" OPPURE entrambi non devono.
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
Alcuni sviluppatori vorranno rimuovere il no-op ma ciò significherebbe negare il condizionale:
function chgpath() {
# toC, fromC are the first characters of the argument paths.
if [[ "$toC" != / || "$fromC" == / ]] && [[ "$toC" == / || "$fromC" != / ]]
then
return 1 # Skip function.
fi
Ora, a mio parere, non è così chiaro dalla clausola if le condizioni in cui vorresti saltare facendo la funzione. Per eliminare il no-op e farlo chiaramente, dovresti spostare la clausola if dalla funzione:
if [[ "$toC" == / && "$fromC" == / ]] || [[ "$toC" != / && "$fromC" != / ]]
then
cdPath=$(chgPath pathA pathB) # (we moved the conditional outside)
Sembra migliore, ma molte volte non possiamo farlo; vogliamo che il controllo venga fatto all'interno della funzione.
Quindi quanto spesso accade questo? Non molto spesso. Forse una o due volte all'anno. Succede abbastanza spesso che dovresti esserne consapevole. Non esito a usarlo quando penso che migliori la leggibilità del mio codice (indipendentemente dalla lingua).