Здравствуйте, Master Yoda, Вы писали:
MY>Здравствуйте, Jack128, Вы писали:
MY>>>Выводит пустую строку, а что?
J>>А у меня выдало Test
MY>Хм, а какая версия Delphi? У меня пятая
в седьмой и 2006 — так как я описал. Собственно так было всегда, имхо у тя где то глючит
J>>Инициализация проводится только для локальных/глобальных переменных, но не для Result
MY>Мне казалось что к Result применимы те же правила, что и для локальных переменных. Т.е. это по сути неявная локальная переменная.
Нет, это не так. Result — это не явный var параметр. собственно посмотри на асм код двух таких подпрограмм:
procedure Proc(var Result: string; I, J: Integer);
begin
Result := IntToStr(I) + IntToStr(J)
end;
function Func(I, J: Integer): string;
begin
Result := IntToStr(I) + IntToStr(J)
end;
procedure TForm8.FormCreate(Sender: TObject);
var
S: string;
begin
Proc(S, 1, 2);
S := Func(1, 2);
Caption := s;
end;
он абсолютно одинаков.
J>>ЗЫ Ты точно закоментировал строку Result := '' ??
MY>Да.