【发布时间】:2018-01-23 05:08:11
【问题描述】:
为什么下面的代码没有恐慌? test 绝对是一个指针。使用 fmt.Println(people[0].Name) 而不是 fmt.Println(test.Name) 它确实会恐慌。
package main
import "fmt"
func main() {
type Person struct {
Id int
Name string
}
people := make(map[int]*Person)
people[1] = &Person{0, "Name"}
fmt.Println(people[0].Name)
test := people[0]
test.Name = "Name2"
fmt.Println(test.Name)
people[0].Name = "Name3"
fmt.Println(test.Name)
delete(people, 0)
fmt.Println(test.Name)
}
【问题讨论】:
-
您问题中的代码与操场上的代码不同。你问的是哪一个?
标签: pointers dictionary go