小编RSH*_*RSH的帖子

golang递归函数将自身称为goroutine并不像预期的那样工作

此递归函数按预期工作(返回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)
}
Run Code Online (Sandbox Code Playgroud)

这个没有(只返回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)
}
Run Code Online (Sandbox Code Playgroud)

不同之处在于,在第二个实现中,函数将自身称为goroutine.(线go recur(iter-1))

有人可以解释这种行为吗?

recursion go goroutine

4
推荐指数
1
解决办法
2805
查看次数

标签 统计

go ×1

goroutine ×1

recursion ×1