169 похожих чатов

С какой версии дельфи (приблизительно) в функции возвращающей (а есть

слово покороче?) строку стало не нужно инитить резалт пустой строкой?
function foo: string;
begin
// Result := '';
end;

16 ответов

15 просмотров

на сколько помню - с самых ранних.

нужно во всех версиях, если не хочешь получить в строке старое значение.

строка будет содержать тоже значение, что и до вызова функции

result передается неявным параметром в функцию, компилер в праве оставить значение которое было в переменной до присвоения результата функции

Karagy
XE7 - не подтверждаю

в любом случае - это плохая практика и не следует на это полагаться

Viktor Akselrod 💻
в любом случае - это плохая практика и не следует ...

а почему когда результат Integer - такого не происходит?

Viktor Akselrod 💻
в любом случае - это плохая практика и не следует ...

ну так компилятор же говорит обычно, что возвращаемое значение не определено. Так что пёс его знает, что там может быть

Karagy- Автор вопроса
Thadeous
а почему когда результат Integer - такого не проис...

надо посмотреть asm, но емнип тут дело в типе переменных. строка - ссылочный тип, Integer же передается по значению

Thadeous
Delphi 11 - подтверждаю.

Я когда первые два месяца на ней кодил, долго не мог понять, почему делаю Inc к Result и получаю 273 вместо 3))

Viktor Akselrod 💻
надо посмотреть asm, но емнип тут дело в типе пере...

Дело не в том, как передается, а в том, как возвращается. string по ссылке, а integer в регистре

Похожие вопросы

Обсуждают сегодня

лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
#include <stdio.h> #include <stdlib.h> #include <time.h> int** generate_table(int size_matrix) { int** matrix = (int**)malloc(size_matrix * sizeof(int*)); for (int i ...
Чувак
1
@PerlBanjoBot use v5.38; sub split_on_cond($arr, $cond) { ($a, $b) = ([], []); push @{ $cond->($_) ? $a : $b }, $_ for @$arr; ($a, $b) } use Data::Dumper; warn Dumpe...
Sergei Zhmylove
10
У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Дебил? Я ищу друга
Bitard 228
27
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
Всем привет! как узнать, что текст в TSkLabel был выведен сокращенным ? Есть функция для TLabel которая позволяет определить , что текст выведен сокращенным function TFrmMai...
DELPHI SOLUTIONS
6
Карта сайта