Werden veränderbare lokale Variablen in einer Funktion, die nur intern verwendet werden (z. B. die Funktion hat keine Nebenwirkungen, zumindest nicht absichtlich), immer noch als "nicht funktionsfähig" betrachtet?
zB bei der "Funktionsprogrammierung mit Scala" wird bei der Prüfung des Kursstils jede var
Verwendung als schlecht eingestuft
Meine Frage, ob die Funktion keine Nebenwirkungen hat, ist das Schreiben von imperativem Stilcode immer noch nicht empfehlenswert?
Was ist z. B. falsch daran, eine lokale for-Schleife zu erstellen, eine lokale Mutable zu erstellen ListBuffer
und zu addieren, anstatt die Tail-Rekursion mit dem Akkumulatormuster zu verwenden, solange die Eingabe nicht geändert wird?
Wenn die Antwort "Ja, sie sind immer entmutigt, auch wenn es keine Nebenwirkungen gibt", was ist dann der Grund?
var
ist immer nicht funktionsfähig. Scala verfügt über eine Lazy Vals- und Schwanzrekursionsoptimierung, die es ermöglicht, Vars vollständig zu vermeiden.