在编写递归函数时,有时会发生某些事情只应在递归算法的第一次通过时发生。如果这是真的,我有两个选择,
哪个选项更可取?如果是后者,我应该如何命名这些函数? (例如,如果是洪水填充算法,我会选择
FloodFill
和 FloodFillRecursive
吗?)提前致谢,嗯。
最佳答案
我可能会使用两个函数,我会说将要调用的函数应该命名为 FloodFill
: 用户不需要知道该函数是如何实现的,因此不应将其命名为 FloodFillRecursive
.
其实,FloodFillRecursive
可能是内部函数的名称:包含实现的函数,由用户调用的函数调用的函数——因为它是递归的第二个函数。
理想情况下,该函数不应该对用户可见:它应该隐藏在您的库中(无论是真正隐藏,还是使用一些命名约定告诉用户他们不应该直接调用它)。
而且,这样,如果您更改实现,您将不会让您的用户调用 FloodFillRecursive
可能不再递归的函数。
关于language-agnostic - 递归函数 - 两个函数或最后一个可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9243646/