测试代码如下:
func main() { lans := [5]string{"java", "python", "erlang", "cpp", "go"} fin := make(chan bool) for _, l := range(lans) { go func() { fmt.Println(l) }() } <- fin }
我认为输出将是:java,python,erlang,cpp,go;但是输出是:go go go go go; 怎么了
就是这样写函数,把动词l变成函数
l
go func(l string) { fmt.Println(l) }(l)