[已解决]Golang 递归匿名函数遇到的问题
有这么一段代码,源码地址:github.com/adonovan/gopl.io/blob/m...
其他的代码都能理解,就是第 53 行和第 54 行,这两行代码之间的联系,没能理解。
visitAll
它是一个匿名函数,在这个匿名函数中,会递归它自己本身。我的疑惑是:第 53 行代码是递归它自己本身了,那么就会重新回到这个函数中的第一行代码,为什么代码还是能往下走,去执行第 54 行代码:order = append(order, item)
?
我通过 Goland 这个 IDE 的调试工具,一步一步调试下去,也没能理解:既然是调用函数了,那么就应该立即回到函数的第一行代码,而不会往下走才对。为什么代码还是会走向第 54 行?
如果说递归函数的最终回溯行为,但是这行 order = append(order, item)
代码是在匿名函数的 for
循环体内。
恳请各位大佬不吝指点,实在没能理解这个行为。
你对于递归的理解不对吧,递归调用自己,并不是结束自己,就和调用其他函数一样执行完成后还是会继续执行下面的程序