Parfois, les clauses no-op peuvent rendre votre code plus lisible.
Cela peut être une question d'opinion, mais voici un exemple. Supposons que vous ayez créé une fonction qui fonctionne en prenant deux chemins Unix. Il calcule le «chemin de changement» nécessaire pour passer d'un chemin à un autre. Vous placez une restriction sur votre fonction selon laquelle les chemins doivent tous deux commencer par un «/» OU les deux ne doivent pas.
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
Certains développeurs voudront supprimer le no-op, mais cela signifierait annuler le conditionnel:
function chgpath() {
# toC, fromC are the first characters of the argument paths.
if [[ "$toC" != / || "$fromC" == / ]] && [[ "$toC" == / || "$fromC" != / ]]
then
return 1 # Skip function.
fi
Maintenant, à mon avis, il n'est pas si clair d'après la clause if les conditions dans lesquelles vous voudriez sauter la fonction. Pour éliminer le no-op et le faire clairement, vous voudrez déplacer la clause if hors de la fonction:
if [[ "$toC" == / && "$fromC" == / ]] || [[ "$toC" != / && "$fromC" != / ]]
then
cdPath=$(chgPath pathA pathB) # (we moved the conditional outside)
Cela semble mieux, mais souvent nous ne pouvons pas faire cela; nous voulons que la vérification soit effectuée à l'intérieur de la fonction.
Alors, à quelle fréquence cela se produit-il? Pas très souvent. Peut-être une ou deux fois par an. Cela arrive assez souvent pour que vous en soyez conscient. Je n'hésite pas à l'utiliser quand je pense que cela améliore la lisibilité de mon code (quelle que soit la langue).