Q1mi / BlogComments

9 stars 0 forks source link

处理并发错误 | 李文周的博客 #150

Open Q1mi opened 2 years ago

Q1mi commented 2 years ago

https://www.liwenzhou.com/posts/Go/error-in-goroutine/

李文周的 Blog 提供 Go 语言中文教程,李文周博客,Go 语言学习之路是我整理的一个免费教程和视频教程,也是Go语言的入门教程,非常适合新手入门学习go语言。本文讲解了Go语言并发的错误处理,即如何获取goroutine中的错误。

spiritbird commented 2 years ago

这里为什么需要这要重新声明一个变量呢?

url := url // 注意此处声明新的变量

1651107797 commented 2 years ago

@spiritbird 这里为什么需要这要重新声明一个变量呢?

url := url // 注意此处声明新的变量

如果不赋值一个,go func()协程里面读取 url的值的时候,已经变成新的值了,因为for循环读取出来的值都是放在一个内存地址中的。赋值给新的变量读取的时候就近原则,就会去新的变量里面去拿,不这么写也行的,可以用 go func(x string){...}(url),直接在开启一个协程的时候把url当做参数传递过去