2009-07-16 17 views
0

私は、レガシーコードに次のように見てきた:再割り当てパラメータ

public void someFunction(List myList){ 
List myList2 = myList; 
} 

は、関数内のローカル変数として再割り当てパラメータに正当な理由がありますか?

+0

これはJavaまたはC#のように見えるので、かなり新しい「レガシーコード」でなければなりません! –

+0

@Neil:「レガシー」のラベルはかなり早く固まり、Javaは14歳です。 –

+0

はい、Javaコードです。すべての答えをありがとう! :) – Tamar

答えて

1

私の意見では、名前のエイリアシングや再利用は避けるべきです。

0

言語によって異なります。場合によっては、後で「コピー」を変更したい場合があります。元のパラメータを変更する言語や状況によっては、発信者に表示される内容が変更されることがあります。

あなたが話している言語(Java?)と具体的な例を挙げると、説明するのに役立ちます。

0

これは、値渡しのパラメータを使用して行う必要はありません。これは非常に流暢ではない開発者のように見えます。彼が自分のパラメータのコピーを作っていないと、彼は彼と一緒に仕事をしていた別の言語を思い出しています。

1

個人的なスタイルかもしれません。または、新しい参照を作成しようとして失敗しましたか?コンパイラがmyListを捨ててmyListを捨てるようにしていることは確かです。

+0

はい、おそらくコンパイラはそれを最適化します。 – artificialidiot

関連する問題