Delphi константы и ссылки
Я хочу передавать постоянные ссылки на функции в delphi, поэтому я уверен, что ссылочный объект не изменится и сэкономит время и память. Поэтому я хочу объявить функцию, как
function foo(var const Value : Bar) : Boolean;
Однако это не допускается. Я думал, что значения констант будут автоматически отправлены как ссылки. Однако я обнаружил, что это не так (получение адреса объекта перед отправкой в функцию дает мне $12F50C, а адрес того же объекта внутри функции - $12F564)
Что я могу сделать, чтобы отправить постоянные ссылки?
1 ответ
Function Foo(Const Value:Bar):Boolean
передает значение "наиболее эффективным" способом, для больших объектов это обычно по ссылке, но меньшие объекты, как правило, передаются по значению.
Ответы на этот вопрос более подробно...
Обратите внимание, что передача параметра, помеченного как const
это не значит, что его нельзя изменить, это просто означает, что компилятор не позволит вам изменить его напрямую.