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)
}

閉包和傳參的區別
包一層成了閉包 不包一層 值傳遞

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章