3

たとえば、2 つの配列のマージ関数のように、同じタイプの変数が 2 つある場合は、次のようになります。 IntArray merge(IntArray array1,IntArray array2);

変数に名前を付ける最良の (最も読みやすく、エラーが発生しにくい) 方法は何だと思いますか? var1,var2またはfirstVar,secondVar ? それとも別の方法ですか?ご意見をお聞かせいただければ、特にどちらがエラーを起こしにくいかについて、その背後にある合理的な理由をお聞かせいただければ幸いです。

前もって感謝します。

4

4 に答える 4

2

C/C++ の場合、次の方法が望ましいと思います。

IntArray merge(IntArray a, IntArray b);

シンプルで短く、変数名に整数を使用しないためです。

または「演算子形式」:

IntArray merge(IntArray lhs, IntArray rhs);

左右用)_

(同様に:

IntArray operator+(IntArray lhs, IntArray rhs);

)

'numeric' バリアントと camelCase は、C よりも ECMAScript に似ています。しかし、それはほとんどが単に C/C++ を使用し、そのような命名を使用した人々によって作成された '標準' です (例については、C++ 標準ライブラリのプラス テンプレートを参照してください)。

しかし、それは単に好みの問題であるため、その背後にある合理的な理由を理解することはできません. 変数が同じように重要である限り (つまりmerge(a, b) == merge(b, a))、実装コードからどのように参照されるかだけです。

于 2012-08-10T09:04:32.453 に答える
1

関数の引数は、常にそれらが誰であるか、およびそれらが何のために使用されるべきかについて話している必要があります。2つの配列の間に違いがない場合(たとえば、ソースと宛先として)、配列のリスト(arraysToMergeなどの名前)を渡すことを検討する必要があります。変数の名前は、常に変数の目的を説明する必要があります。コードは私たちの実際のドキュメントである(または少なくともそうあるべきである)からです。

于 2012-08-10T08:40:24.777 に答える
1

あなたの場合、varとの線に沿って何かを使用しanotherVarます。
そのような:

IntArray merge(IntArray array, IntArray anotherArray);

変数とパラメータは一目瞭然です。この方が状況が分かりやすいと思います。

于 2012-08-12T16:02:53.190 に答える
1

わかりやすくするために、変数の目的を数値ではなく名前として使用します。変数の数が有限であることがすぐにわかります。例えば:

function predicate(int subject, int object)

function merge_array(array firstArray, array secondArray)

(array1, array2)変数/パラメーターの数が固定されていることがわかっているのに、array3、array4、...があるように見えるので、使用は私にとって間違っているように聞こえます。

于 2012-07-31T10:16:22.353 に答える