2017-02-07 1 views
3
デルファイで

、あなたが機能を終了し、それをC/C++/Javaの/ C#などでExit(1)またはResult:= 1の間に違いはありますか。 Delphiで終了しますか?

Exit(1); 

returnキーワードに非常に似て、戻り値を与える。しかし、私は通常、このような何かを書くことができます。

Result := 1; 
Exit; 

何か別のものを選択する理由はありますか?

+4

下位互換性。 Exit(パラメータ)はD2009で導入されました。 –

答えて

9

これらの2つの変種は意味的に同一であり、自由に選択できます。

Exit(<value>)構文をサポートしていない古いバージョンのコンパイラでコンパイルするコードが必要な場合は、そのバリアントを避ける必要があります。個人的に


私は戻り値を代入するには、2つの異なった方法であることが好きではないという理由だけで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; 

ここでは、2つの異なるアプローチを組み合わせています。もちろん、我々はすべての回で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>)が導入されていないことが望ましいでしょう。しかし、私が言ったように、これらは私の個人的な意見であり、私は他の人々が異なる意見を持っていると確信しています。

+0

2番目のバージョンは、VCLやその他のDelphiコードではかなり慣用的です –

関連する問題