<分区>
这个递归函数按预期工作(返回 5 行数字 5 到 1):
package main
import (
"fmt"
)
func recur(iter int) {
if iter <= 0 {
return
}
fmt.Println(iter)
recur(iter-1)
}
func main() {
recur(5)
}
这个没有(只返回 1 行数字 5):
package main
import (
"fmt"
)
func recur(iter int) {
if iter <= 0 {
return
}
fmt.Println(iter)
go recur(iter-1)
}
func main() {
recur(5)
}
不同的是,在第二种实现中,function调用自己作为一个goroutine。 (行 go recur(iter-1)
)
那么有人可以解释这种行为吗?