1

当我使用内联声明时,我应该更喜欢constvar

在所有在线示例中,甚至在 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吗?

4

1 回答 1

0

我想不利的一面可能是程序更容易“被黑客入侵”。这是一个静态值。不确定当你有一个像 str := 'password' 这样的 var 赋值时还有多少缺点,但你明白了,这更像是一个“一般”的 const 意见。在您的示例中,我真的看不出有什么不同,但是如果有的话,有比我更聪明的人可以发现它。

我喜欢 const,一旦分配了它,你就不会意外地把事情搞砸了。如果我担心黑客攻击,我可以在事后改变事情,更接近发布。

于 2021-07-13T15:29:18.337 回答