delphi - Exit(1) 或 Result := 1; Exit in Delphi? 之间有什么区别

标签 delphi

在Delphi中,你可以退出一个函数并给它一个返回值,这与C/C++/Java/C#等中的return关键字非常相似

Exit(1);

但是,我通常会写这样的内容:

Result := 1;
Exit;

有什么理由选择其中之一?

最佳答案

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

如果您需要在不支持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;

在这里,我们混合了两种不同的方法。显然我们可以选择使用Exit(<value>)始终如此,但后来我无法像这样编写该函数:

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

在我看来,这是添加增强功能的时代之一,它引入了程序员的选择,但带来的好处却很少。我更喜欢 Exit(<value>)尚未介绍。然而,正如我所说,这些都是我的个人观点,我相信其他人也有不同的看法。

关于delphi - Exit(1) 或 Result := 1; Exit in Delphi? 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42087805/

相关文章:

c# - 在 Delphi 中使用 .NET 程序集

delphi - 在 PC 之间共享 Delphi 中的公共(public)内存区域

delphi - 使用 TForm 作为组件基础时出现资源未找到错误

delphi - Delphi 中的异常和 DLL

delphi - 字段查找和函数查找有什么区别?

delphi - Delphi 中接收 SOAP 消息是否有最大大小?

delphi - Intraweb 可以运行超过 65,536 个并发 session 吗?

delphi - list 重复导致 'Unable to Create Process'

delphi - 在 Delphi TStringGrid 中检测单选与多选

ios - Delphi iOS 和平移手势 - 距离始终为零