一条go语句就意味着并发执行一个函数。当循环迭代执行go语句时,要注意参数传递常见的一个疏忽。
如下:
package main
import (
"fmt"
"time"
)
func main() {
langs :=[]string {"java", "php", "golang"}
for _,lang := range langs {
go func() {
fmt.Println(lang)
}()
}
time.Sleep(time.Second)
}
func main() {
langs :=[]string {"java", "php", "golang"}
for _,lang := range langs {
go func(lang string) {
fmt.Println(lang)
}(lang)
}
time.Sleep(time.Second)
}