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.