我不知道为什么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 {
}

最佳答案

语言规范says:

关于go - 结构的golang映射作为键类型如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50384574/

10-15 08:57