私は、レガシーコードに次のように見てきた:再割り当てパラメータ
public void someFunction(List myList){
List myList2 = myList;
}
は、関数内のローカル変数として再割り当てパラメータに正当な理由がありますか?
私は、レガシーコードに次のように見てきた:再割り当てパラメータ
public void someFunction(List myList){
List myList2 = myList;
}
は、関数内のローカル変数として再割り当てパラメータに正当な理由がありますか?
私の意見では、名前のエイリアシングや再利用は避けるべきです。
言語によって異なります。場合によっては、後で「コピー」を変更したい場合があります。元のパラメータを変更する言語や状況によっては、発信者に表示される内容が変更されることがあります。
あなたが話している言語(Java?)と具体的な例を挙げると、説明するのに役立ちます。
これは、値渡しのパラメータを使用して行う必要はありません。これは非常に流暢ではない開発者のように見えます。彼が自分のパラメータのコピーを作っていないと、彼は彼と一緒に仕事をしていた別の言語を思い出しています。
個人的なスタイルかもしれません。または、新しい参照を作成しようとして失敗しましたか?コンパイラがmyListを捨ててmyListを捨てるようにしていることは確かです。
はい、おそらくコンパイラはそれを最適化します。 – artificialidiot
これはJavaまたはC#のように見えるので、かなり新しい「レガシーコード」でなければなりません! –
@Neil:「レガシー」のラベルはかなり早く固まり、Javaは14歳です。 –
はい、Javaコードです。すべての答えをありがとう! :) – Tamar