-1

私は以下の質問をされました、そして私は立ち往生しています。値と参照の違いは理解していますが、メソッドでそれぞれをいつ使用するかわかりません。

メソッドを作成している場合、どのパラメーター受け渡しメソッドを選択しますか?なんで?

違いを理解するのに役立つように、これを以下で見つけました。

「URLを教えていただければ、参考にさせていただきます。そのURLを使用して、表示されているのと同じWebページを表示できます。そのページが変更された場合は、両方に変更が表示されます。URLを削除すると、すべてのユーザーが表示されます。 「実行しているのは、そのページへの参照を破棄することです。実際のページ自体を削除するのではありません。

私がページを印刷してあなたに印刷物を与えるならば、私は価値を渡している。あなたのページはオリジナルの切断されたコピーです。それ以降の変更は表示されず、行った変更(印刷物への落書きなど)は元のページに表示されません。印刷物を破棄すると、実際にはオブジェクトのコピーが破棄されますが、元のWebページはそのまま残ります。」

4

1 に答える 1

0

値を渡すとコピーが作成されることに注意してください。これを行わない理由は 2 つあります。まず、渡す値が大きなデータ構造 (または大量のメモリを使用するその他のもの) である場合、全体をコピーするのはおそらく非効率的であり、不要です。次に、パラメーターへの変更を呼び出し元の関数にミラーリングする場合は、参照渡しする必要があります。そうすれば、コピーではなく、元の値が変更されます。

どちらのケースにも当てはまらない場合は、通常、値による受け渡しの方が簡単で、より適切なオプションです。

考慮すべきことがもう 1 つあります。値渡しは、コピーを作成するため、元の関数の値を偶発的な変更から保護します。ただし、参照渡しによるパフォーマンスの向上が必要な場合もあります。この場合、参照渡しすることをお勧めしますが、パラメーターをconst(または言語に適したもの) としてマークします。

于 2013-01-23T04:16:04.747 に答える