我有以下map
,其密钥类型是匿名struct
:
var data map[struct{ pID, bID int }]string
问题:如何构建实际获取/设置data
值的键?
我已经尝试过这些,这些都会导致编译错误:
data[{1,2}] = "ok"
data[{pID: 1, bID 2}] = "ok"
似乎我没有类型名称就无法形成复合文字,但没有类型名称。
此相关问题使用任意struct
作为map
的值,而不是键:
答案 0 :(得分:2)
您也可以创建匿名密钥,如下所示:
func main() {
data := map[struct{ pID, bID int }]string{}
key := struct{pID, bID int}{1, 2}
data[key] = "abc"
data[struct{pID, bID int}{3, 4}] = "cha cha cha"
fmt.Printf("%+v\n\n", data)
fmt.Printf("'%s' '%s'\n", data[key], data[struct{pID, bID int}{3, 4}])
}