Здравствуйте, Master Yoda, Вы писали:
MY>Здравствуйте, Jack128, Вы писали:
MY>Мне казалось что к Result применимы те же правила, что и для локальных переменных. Т.е. это по сути неявная локальная переменная.
Это не так. Если результат присваивается в переменную, то Result — это неявный var параметр.
Т.е.
function Foo(i: Integer): Boolean;
эквивалентно
procedure Foo(var Result: Boolean; i: Integer);
Можно даже так написать:
function GetStr: string;
begin
if Result = 'OK' then Result := 'Not OK';
end;
var
s: string;
begin
s := 'OK';
s := GetStr; // будет 'Not OK'
end;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>