我正在嘗試創(chuàng)建元素映射。我想使用指針而不是整數(shù)作為鍵。問題是......我一直得到相同的指針。不管我創(chuàng)造了多少次。為什么是這樣?如果可能的話,如何在不使用 unsafe 包的情況下獲得真正的指針。package mainimport ( "fmt")type Thingy struct{}var things map[*Thingy]intfunc main() { things = make(map[*Thingy]int) thing1 := new(Thingy) tracePointer("thing1", thing1) things[thing1] = 1 thing2 := new(Thingy) tracePointer("thing2", thing2) things[thing2] = 2 thing3 := &Thingy{} tracePointer("thing3", thing3) things[thing3] = 3 fmt.Printf("Amount of things: %d\n", len(things))}func tracePointer(identifier string, obj interface{}) { fmt.Printf("%s pointer: %p\n", identifier, obj)}輸出:thing1 pointer: 0x546570thing2 pointer: 0x546570thing3 pointer: 0x546570Amount of things: 1
Go struct 指針不是唯一的
慕工程0101907
2021-08-16 19:26:30