我正在研究在 golang 映射中使用结构作为键。这个结构中的一个字段也应该是一个映射,这似乎与此处提供的文档背道而驰,该文档说只有具有可以比较的字段==并且!=可以位于用作映射中的键的结构的字段中的结构. 但是,我继续尝试以下操作:
package main
import "fmt"
import "strings"
func main() {
fmt.Println("Hello, 世界")
fmt.Println(strings.Join([]string{"obi", "$", "56"}, ""))
z := make(map[string]float64)
z["obi"] = 0.003
x := &test{
name:"testing",
code:z,
}
a := &test{
name:"testing2",
code:z,
}
y := make(map[*test] string)
y[x] = "go home"
y[a] = "come home"
for key, val := range y{
fmt.Println(key.name, key.code, val)
}
}
type test struct{
name string
code map[string]float64
}
输出是:
Hello, 世界
obi$56
testing map[obi:0.003] go home
testing2 map[obi:0.003] come home
这似乎与文档背道而驰,因为用作键的结构中的字段是映射。我似乎有什么问题?
ABOUTYOU
MM们
相关分类