注意:range每次都会把当前值赋值到循环变量上,而不是直接使用原变量
type student struct {
name string
age int
}
func main() {
m := make(map[string]*student)
stus := []student{
{name: "小王子", age: 18},
{name: "娜扎", age: 23},
{name: "大王八", age: 9000},
}
for _, stu := range stus {
//每次取的地址都是循环变量的地址(唯一)
m[stu.name]=&stu
}
for k, v := range m {
fmt.Println(k, "=>", v.name)
}
}
修改后:
type student struct {
name string
age int
}
func main() {
m := make(map[string]*student)
stus := []student{
{name: "小王子", age: 18},
{name: "娜扎", age: 23},
{name: "大王八", age: 9000},
}
for i:=0;i<len(stus) ;i++ {
m[stus[i].name] = &stus[i]
}
for k, v := range m {
fmt.Println(k, "=>", v.name)
}
}