В Delphi есть смысл объявить параметр типа объекта как const? - PullRequest
6 голосов
/ 29 октября 2019

Я знаю преимущества параметров const для простых типов и строк в Delphi. Но как насчет const TStrings? Так как параметр const TStrings может изменять свои элементы (содержимое), какой смысл, например, объявлять параметр const TStrings? Это относится и к любому объекту.

1 Ответ

10 голосов
/ 29 октября 2019

const применяется только к указателю на объект TStrings, но не к самому объекту TStrings. Так что на платформах, не основанных на ARC, это мало что меняет, особенно если код не пытается изменить то, на что указывает указатель. Единственное реальное использование - документировать намерение параметра.

Но const может иметь БОЛЬШУЮ разницу на платформах на основе ARC. Он отключает неявный подсчет ссылок для объекта, который передается параметру (так же, как const для параметров строки и интерфейса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...