Manchmal können No-Op-Klauseln Ihren Code lesbarer machen.
Das kann Ansichtssache sein, aber hier ist ein Beispiel. Angenommen, Sie haben eine Funktion erstellt, die zwei Unix-Pfade verwendet. Es berechnet den 'Änderungspfad', der benötigt wird, um von einem Pfad zum anderen zu wechseln. Sie schränken Ihre Funktion ein, dass die Pfade beide mit einem '/' beginnen müssen ODER beide nicht.
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
Einige Entwickler werden das No-Op entfernen wollen, aber das würde bedeuten, die Bedingung zu negieren:
function chgpath() {
# toC, fromC are the first characters of the argument paths.
if [[ "$toC" != / || "$fromC" == / ]] && [[ "$toC" == / || "$fromC" != / ]]
then
return 1 # Skip function.
fi
Nun - meiner Meinung nach - ist aus der if-Klausel nicht so klar, unter welchen Bedingungen Sie die Ausführung der Funktion überspringen möchten. Um das No-Op zu eliminieren und es klar zu machen, möchten Sie die if-Klausel aus der Funktion entfernen:
if [[ "$toC" == / && "$fromC" == / ]] || [[ "$toC" != / && "$fromC" != / ]]
then
cdPath=$(chgPath pathA pathB) # (we moved the conditional outside)
Das sieht besser aus, aber oft können wir das nicht tun. Wir möchten, dass die Prüfung innerhalb der Funktion erfolgt.
Wie oft passiert das? Nicht sehr häufig. Vielleicht ein- oder zweimal im Jahr. Es kommt oft genug vor, dass Sie sich dessen bewusst sein sollten. Ich scheue mich nicht, es zu verwenden, wenn ich denke, dass es die Lesbarkeit meines Codes verbessert (unabhängig von der Sprache).