[go]go闭包和传参的区别

问题: 为啥包一层输出的就有问题了

func main() {
	arr := []int{1, 2, 3}
	for _, v := range arr {
		go func() {
			println(v)
		}()
	} // 3 3 3
	time.Sleep(time.Second)
	for _, v := range arr {
		go println(v)
	} // 1 2 3
	time.Sleep(time.Second / 10)
}

闭包和传参的区别
包一层成了闭包 不包一层 值传递

posted @ 2023-01-28 22:12  mmaotai  阅读(21)  评论(0编辑  收藏  举报