Встроенные объявления: 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, раз уж он назначен, вы не можете случайно что-то изменить. Если меня так беспокоит взлом, я могу все изменить постфактум, ближе к релизу.

Другие вопросы по тегам