退出(1)或结果之间是否有任何区别:= 1; 在德尔福退出?

jus*_*tyy 5 delphi

在Delphi中,您可以退出函数并为其提供一个返回值,该值与C/C++/Java/C#等中的return关键字非常相似.

Exit(1);
Run Code Online (Sandbox Code Playgroud)

但是,我通常写这样的东西:

Result := 1;
Exit;
Run Code Online (Sandbox Code Playgroud)

有没有理由选择一个而不是另一个?

Dav*_*nan 10

这两个变体在语义上是相同的,您可以在它们之间自由选择.

如果您需要在不支持Exit(<value>)语法的旧版本编译器上编译代码,那么显然您必须避免使用该变体.


我个人避免Exit(<value>)仅因为我不喜欢有两种不同的方式来分配返回值.我讨厌这样的功能:

function FindValue(Value: Integer): Integer;
var
  i: Integer;
begin
  for i := 0 to Count - 1 do
    if Items[i] = Value then
      Exit(i);
  Result := -1;
end;
Run Code Online (Sandbox Code Playgroud)

在这里,我们混合两种不同的方法.显然我们可以随时选择使用Exit(<value>),但后来我不能这样写这个函数:

function FindValue(Value: Integer): Integer;
begin
  for Result := 0 to Count - 1 do
    if Items[Result] = Value then
      Exit;
  Result := -1;
end;
Run Code Online (Sandbox Code Playgroud)

在我看来,这是增加一个增强功能的时代之一,它引入了程序员的选择,但收益却很小.我宁愿Exit(<value>)没有被介绍过.但是,正如我所说,这些是我个人的意见,我相信其他人有不同的看法.