我想我可以通过使用匿名字段来创建有序的地图类型:
type customMap struct{
map[string]string
ordered []string
}
我可以在哪里参考地图customMapInstance["key"]
并迭代ordered
。唉,数组和映射似乎不是有效的匿名字段。我怀疑这是有充分理由的...
从规格来看:
嵌入类型必须指定为类型名称 T 或指向非接口类型名称 *T 的指针,并且 T 本身可能不是指针类型。
您会看到它提到了“类型名称”。
命名类型由(可能是限定的)类型名称指定;未命名类型是使用类型文字指定的,它从现有类型组成新类型。
换句话说,映射或切片可能不是匿名的,除非它们被定义为命名类型。例如:
type MyMap map[string]string
type customMap struct{
MyMap
ordered []string
}
但是,即使您嵌入 MyMap 或切片类型,您仍然无法索引 customMap。嵌入时,只有字段和方法可能会被“提升”。对于其他一切,它们只是另一个领域。在上面的示例中,MyMap 没有任何字段或方法,因此相当于:
type customMap struct{
MyMap MyMap
ordered []string
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)