gpt4 book ai didi

go - 为什么Go子程序不被执行

转载 作者:IT王子 更新时间:2023-10-29 02:32:27 24 4
gpt4 key购买 nike

<分区>

我正在按照在线教程“围棋之旅”学习围棋。

在本练习中:https://tour.golang.org/concurrency/10

在继续解决问题之前,我想尝试一些简单的事情:

func Crawl(url string, depth int, fetcher Fetcher) {
fmt.Println("Hello from Crawl")
if depth <= 0 {
return
}
body, urls, err := fetcher.Fetch(url)
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("found: %s %q\n", url, body)
for _, u := range urls {
fmt.Println("in loop with u = %s", u)
go Crawl(u, depth-1, fetcher) //I added "go" here
}
}

我唯一添加的是在递归调用 Crawl 之前添加的 go 命令。我预计它不会对行为有太大改变。

但是打印输出是:

Hello from Crawl
found: http://golang.org/ "The Go Programming Language"
in loop with u = http://golang.org/pkg/
in loop with u = http://golang.org/cmd/

对于循环的每次迭代,我希望看到 Hello from Crawl。为什么我的 Crawl 子例程没有执行?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com