这是一个很好的递归示例吗?

123*_*123 -1 recursion

我意识到这是一个非常简单的代码,我很确定它是递归的,但我只是想确保它是我认为的.(对不起,如果这是一个蹩脚的问题,我只是第二次猜测自己是否理解了递归实际上是什么.)

var x = 0
func countToTen() {
    if (x <= 10) {
        println(x)
        x++
        countToTen()
    }
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*Dan 5

是的,这绝对是递归的!但是,对于好的样式,最好为函数创建xa参数.这是一种样式问题,但它也使代码更容易维护,没有像这里的全局变量.

这就是我在说什么.

func countToTen(x) {
    if (x <= 10) {
        println(x)
        countToTen(x + 1)
    }
}
Run Code Online (Sandbox Code Playgroud)

现在你可以调用该函数

countToTen(1)
Run Code Online (Sandbox Code Playgroud)

例如,这将从1到10计算.你做得对,我的版本可能只是稍微清晰一点.