只是想知道是否有标准符号或至少是指定递归函数的通用符号?
我不知道它是否重要,但我希望尽可能多地在我的函数docblock中提供信息,所以我通常只会添加“这是一个递归函数”之类的内容。
这是一个例子,所以我们都在考虑在同一个地方记录。我的例子是使用ES2015 Javascript
/**
* Replace $nbsp;'s with actual spaces and return the message
*
* Recursive
*
* @param {string} message The string to be cleaned
*
* @returns {string}
* @private
*/
_replaceSpaces(string) {
const cleanedString = string.replace(' ', ' ');
if (cleanedString.indexOf(' ') > -1) {
return this._replaceSpaces(cleanedString);
}
return cleanedString;
}
答案 0 :(得分:1)
您的函数使用递归与否的事实并不是该函数的用户应该关心的事情。这更像是为了让自己被提醒,并且不需要在文档中提及。
在这种特殊情况下是否使用递归是最好的方法是另一回事。
<强>更新强> Doind一个正则表达式字符串替换应该做的工作。
str.replace(/ /g, ' ')
答案 1 :(得分:0)
当我深入研究某个功能并逐渐意识到它与我一直在查看/逐步执行的功能相同时,我总是会感到有些惊讶。我期望一个正常的提取或重载函数,而不是一个自我调用。因此,我想在递归站点上发表这样的评论:
if (cleanedString.indexOf(' ') > -1) {
// Recursively continue removing spaces.
return this._replaceSpaces(cleanedString);
}