结构的golang图如何作为键类型工作?

o0o*_*o0o 0 struct go

我不知道为什么Go给出了以下结果.我认为a1和a2是两个不同的指针?

&{}!

func main() {
    a1 := &A{}
    a2 := &A{}
    a3 := &A{}
    m2 := make(map[*A]string)
    m2[a1] = "hello"
    m2[a2] = "world"
    m2[a3] = "!"
    for k, v := range m2 {
        fmt.Println(k, v)
    }
}

type A struct {
}
Run Code Online (Sandbox Code Playgroud)

Art*_*Art 7

语言规范:

指向不同零大小变量的指针可能相同也可能不相等.