我無法理解此代碼塊的行為。我做錯了什么,正確的方法應該是什么?import ( "fmt" "strconv")type Record struct { name *string}type person struct { name string}func main() { var Records []*Record var persons []person for i := 0; i < 10; i++ { newValue := person{name: strconv.Itoa(i)} persons = append(persons, newValue) } for _, personone := range persons { newRecord := &Record{} getName(newRecord, &personone) Records = append(Records, newRecord) } for _, record := range Records { fmt.Println(*record.name) }}func getName(record *Record, value *person) { record.name = &value.name}我期望此代碼打印 0 到 9,但它始終打印最后一個值 9。
結構值的切片總是被最后一個索引覆蓋
慕尼黑8549860
2023-03-29 15:55:31