Wenn es in Ordnung ist, nur eine Meinung niederzuschreiben, dann ist das meine:
Ich bin mit der "Single Return Statement"-Theorie absolut nicht einverstanden und halte sie in Bezug auf die Lesbarkeit des Codes, die Logik und die beschreibenden Aspekte für spekulativ und sogar destruktiv.
Die Angewohnheit, nur eine einzige Rückgabe zu haben, ist sogar für reine prozedurale Programmierung schlecht, ganz zu schweigen von höheren Abstraktionen (funktional, kombinatorisch usw.). Außerdem wünsche ich mir, dass der gesamte in diesem Stil geschriebene Code durch einen speziellen Rewriting-Parser läuft, damit er mehrere return statements!
Eine Funktion (wenn sie wirklich eine Funktion/Abfrage im Sinne der "Abfrage-Befehl-Trennung" ist - siehe z.B. Eiffel-Programmiersprache) MUSS einfach so viele Rückgabestellen definieren, wie sie Kontrollfluss-Szenarien hat. Das ist viel klarer und mathematisch konsistent; und es ist der Weg, um zu schreiben Funktionen (d.h. Abfragen)
Aber ich würde nicht so kämpferisch sein, wenn es um die Mutationsmeldungen geht, die Ihr Agent erhält - die Verfahrensaufrufe.
25 Stimmen
Ich stimme nicht zu, dass die Frage sprachenfeindlich ist. Bei einigen Sprachen ist die Mehrfachrückgabe natürlicher und bequemer als bei anderen. Ich würde mich eher über frühe Rückgaben in einer C-Funktion beschweren als in einer C++-Funktion, die RAII verwendet.
3 Stimmen
Diese Frage ist eng damit verbunden und enthält ausgezeichnete Antworten: programmers.stackexchange.com/questions/118703/
0 Stimmen
Sprachunabhängig? Erklären Sie jemandem, der eine funktionale Sprache verwendet, dass er einen Return pro Funktion verwenden muss :p