看看这篇拯救发际线的干货吧--警惕 Go 编程陷阱

Go中国 ·
func tggg(p *int) { fmt.Printf("p = %p, v = %d\n", time.Now(), p, *p) } func tggg1(t int) { fmt.Printf("v = %d\n", time.Now(), t) } func main() { number := []int{1, 2, 3, 4, 5} for _, v := range number { go tggg1(v) go tggg(&v) } } time.Sleep(5*time.Second) 对于这个输出,为什么使用值时,输出的是不同的5个值,但是使用地址,输出的却是同一个值?
#1