1.foreach
for循环是对值的拷贝
type student struct { Name string Age int}func forDemo() { m := make(map[string] * student) stus := [] student { { Name: "zhang", Age: 24, }, { Name: "li", Age: 23, }, { Name: "zhao", Age: 22, }, } for i := 0; i < len(stus); i++ { stus[i].Age = stus[i].Age + 10 //这样操作 } for i := 0;i<len(stus);i++ { m[stus[i].Name] = & stus[i] //这样操作 } for k, v := range m { println(k, "=>", v.Name,v.Age) }}
2.chan作为互斥锁
func add(h chan int, wg *sync.WaitGroup) { defer wg.Done() h <- 1 num += 1 <-h}