![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему функция возвращает данные, которые ей недоступны [D7, Win2k, WinXP]
gosha67 © (2006-09-26 16:49:00)Здравствуйте уважаемые.
Я программист с некоторым опытом, но только сегодня я обнаружил сие недоразумение. Объясните мне пожалуйста почему в конечном итоге Data := 'some text bla bla bla ....'? По идее она должна быть равно только 'bla bla bla'. Загадка какая-то.
function GetSomeData: string;
var i : integer;
begin
for i := 1 to 20 do
begin
Result := Result + ' bla bla bla';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var Data : string;
begin
Data := 'some text';
Data := GetSomeData;
ShowMessage(Data);
end;
Джо (2006-09-26 16:56:00) [81]> Я программист с некоторым опытом, но только сегодня я обнаружил
> сие недоразумение. Объясните мне пожалуйста почему в конечном
> итоге Data := 'some text bla bla bla ....'? По идее она
> должна быть равно только 'bla bla bla'. Загадка какая-то.
Псевдо-переменная Result не инициализируется автоматически.
Игорь Шевченко (2006-09-26 16:52:00) [82]
> По идее она должна быть равно только 'bla bla bla'.
Не должна.
> Загадка какая-то.
Чтобы не было загадки, надо переписать функцию:
function GetSomeData: string;
var i : integer;
begin
Result := '';for i := 1 to 20 do
begin
Result := Result + ' bla bla bla';
end;
end;