слово покороче?) строку стало не нужно инитить резалт пустой строкой?
function foo: string;
begin
// Result := '';
end;
на сколько помню - с самых ранних.
нужно во всех версиях, если не хочешь получить в строке старое значение.
строка будет содержать тоже значение, что и до вызова функции
result передается неявным параметром в функцию, компилер в праве оставить значение которое было в переменной до присвоения результата функции
XE7 - не подтверждаю
в любом случае - это плохая практика и не следует на это полагаться
а почему когда результат Integer - такого не происходит?
ну так компилятор же говорит обычно, что возвращаемое значение не определено. Так что пёс его знает, что там может быть
профиллер с вами не согласен
Delphi 11 - подтверждаю.
в чем он он согласен?
надо посмотреть asm, но емнип тут дело в типе переменных. строка - ссылочный тип, Integer же передается по значению
Я когда первые два месяца на ней кодил, долго не мог понять, почему делаю Inc к Result и получаю 273 вместо 3))
Дело не в том, как передается, а в том, как возвращается. string по ссылке, а integer в регистре
Обсуждают сегодня