プロシージャ内でconst
パラメータを使用すると、どのような違いがありますか?プロシージャのパラメータに "const"を使用すると、どのような違いがありますか?
例えば、以下の手順を取る:
procedure DoSomething(Sender: TObject; const Text: String; var Reply: String);
begin
//Text is read-only and Reply will be passed back wherever DoSomething() was called
Reply:= Text;
end;
(私の知る限り)、値のコピーが作られ、使用されているように、パラメータText: String
がconst
が付いている - と読み取り専用であります。私が疑問に思っていたことは、アプリケーションに何か違う影響を与えるのは、const
を入れなかった場合とはどういうことでしょうか?おそらくパフォーマンスのトリックですか?
ここで答えますか? http://stackoverflow.com/a/1601124/496736 –
ほとんどの場合、すべての入力専用パラメータを「const」として注意深くマーキングすることの大きな利点は、プログラマが、あなたが愚かなことを避けるために追加の助けを得ることですバグ。 –
@Andreas何が嫌なのは、インターフェイスと実装の両方に 'const'を含める必要があることです。これは、C++がDelphiに勝つ1つの領域です。 –