Встроенные объявления: var vs const
Когда я использую встроенные объявления, что лучше?
Во всех онлайн-примерах и даже в собственной документации Delphi я вижу, что
var
используется. Однако я думаю, что
const
часто лучше выражает мои намерения и предотвращает случайные изменения.
Небольшой пример, демонстрирующий, что я имею в виду:
{$APPTYPE CONSOLE}
program VarVsConst;
uses
Spring.Collections,
System.SysUtils;
function UsingVar:string;
begin
var dict := TCollections.CreateDictionary<string, Integer>;
dict.Add ('one', 1);
var pair := dict.ExtractPair('one');
Result := pair.Value.ToString;
end;
function UsingConst:string;
begin
const dict = TCollections.CreateDictionary<string, Integer>;
dict.Add ('one', 1);
const pair = dict.ExtractPair('one');
Result := pair.Value.ToString;
end;
begin
Writeln(UsingVar);
Writeln(UsingConst);
Readln;
end.
Итак, есть ли недостатки или опасности для
UsingConst
выполнение?
1 ответ
Я полагаю, что обратная сторона может заключаться в том, что программу легче «взломать». Это статическое значение. Не уверен, насколько больше недостатков, когда у вас есть назначение var, такое как str:= 'password', но вы понимаете, что это скорее "общее" мнение констант. В вашем примере я действительно не вижу разницы, но есть люди умнее меня, которые могли бы это заметить.
Мне нравится const, раз уж он назначен, вы не можете случайно что-то изменить. Если меня так беспокоит взлом, я могу все изменить постфактум, ближе к релизу.