3

只是一个简单的问题,

你觉得两者哪个更好:

- 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

对我来说,返回一个值总是比输出参数更好的选择。
在我看来,它更加干净和优雅。
看看这个类似的问题,以及 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 回答