通过匿名结构键

时间:2016-10-15 00:03:18

标签: go

我有以下map,其密钥类型是匿名struct

var data map[struct{ pID, bID int }]string

问题:如何构建实际获取/设置data 值的键?

我已经尝试过这些,这些都会导致编译错误:

data[{1,2}] = "ok"
data[{pID: 1, bID 2}] = "ok"

似乎我没有类型名称就无法形成复合文字,但没有类型名称。

此相关问题使用任意struct作为map,而不是

1 个答案:

答案 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}])
}

完整档案:https://play.golang.org/p/2q11qiwxuI