3

簡単な質問ですが、

次の 2 つのうち、どちらが優れていると思いますか。

- A recursive function that returns a value
- A recursive function with an OUT paremeter (which will serve as a return value.)

私は両方のアプローチを試しましたが、どちらも同じように機能しました。

この関数の主な機能は次のとおりです。

-> accept a String parameter.
-> scan through a list (whick have like 1032 items) and find a match of the string parameter above.
-> then get a specific data from the object that matched the string parameter.

ご意見をお待ちしております。

4

3 に答える 3

4

私にとっては、値を返すことは常に out パラメータよりも優れた選択です。
私の意見では、よりクリーンでエレガントです。
この同様の質問と、John skeet による回答を見てください。

また、FxCopを使用すると、 out parameters の使用に関する警告が表示されます

于 2013-07-01T06:01:27.103 に答える
0

私にはどちらのアプローチも問題ないように見えるので、個人的な好みになります。基本的に、一般的なメソッドについて同じ質問をすることができます-再帰的かどうか。

out パラメータの利点は、複数のパラメータをサポートできることです。ただし、戻り値を使用する方が読みやすいと言う人もいるかもしれません。

于 2013-07-01T04:03:07.513 に答える
0

あなたが見つけたのと同じように、どのアプローチはコンテキストに依存します。場合によっては問題にならない場合もあれば、複雑さが軽減される場合もあります。

最終的に、コンテキストは、解決しようとしている問題によって異なります。再帰関数は、ループベースのアルゴリズムと比較して、問題を解決するための非常に簡単な方法である場合があり、逆もまた同様です。

あなたが言ったことから、単語のリストがある種の複雑なツリーノード構造に格納されていない限り、ループベースのアルゴリズムを使用したほうがよいように思えます。

于 2013-07-01T04:04:24.147 に答える