Result ist immer besser.
- man erkennt genau was gemeint ist
- man kann mit dem Namen nicht rechnen
- und wenn man die Funktion umbenennt, muß man das auch immer mit anpassen
Rechnen:
In C wird meisten eine Hilfsvariable verwendet und das Ergebnis erst am Ende an RETURN übergeben.
In Delphi is t das nicht nötig, da man Result direkt verwenden kann, jedenfalls dann, wenn man nicht den funktionsnamen verwendet.
Delphi-Quellcode:
Result := 132;
...
Result := Result * 2;
...
end;
Am Beispiel von dem schon genannten "Sum" würd man schnell in einer Endlosschleife landen.
Denn "sum" wird nur bei Zuweisungen als Funktionsergebnis genommen und sonst ist es ein Aufruf.
Delphi-Quellcode:
Function Sum(const Values: TBytes): Integer;
var
B: Byte;
begin
Sum := 0; // entspricht Result :O 0;
for B in Values do
Sum := Sum + B; // hier würde es aber Result := Sum + B; sein, also ein rekursiver Aufruf
end;
Ach ja: Und das Result muß grundsätzlich immer initialisiert werden, selbst wenn man denkt, daß es bei String, dyn. Array und Interface auch ohne funtioniert.
Glaubt mir einfach, dem ist nicht so.
Ein Therapeut entspricht 1024 Gigapeut.