gpt4 book ai didi

映射为匿名结构成员

转载 作者:数据小太阳 更新时间:2023-10-29 03:07:46 25 4
gpt4 key购买 nike

我在 go 中遇到了一些我无法完全理解的行为,欢迎任何类型的解释:

type Test struct{
Name string // or other metadata to be stored along the core map element
map[string]string
}

以上代码将无法编译并出现unexpected map 错误。这可能是因为 struct Field delarations 必须是类型,但是我无法理解为什么 map[string]string 不是类型。

将其更改为

type Embedded map[string]string

type Test struct{
Name string
Embedded
}

get 解决了编译器错误,但 Test["someKey"] 仍会引发编译器错误无效操作:Test["someKey"](Test 类型的索引)

当然,直接用 Test.Embedded["someKey"] 处理匿名字段是可行的,但我的问题是:

  • 为什么文字映射声明在非匿名字段声明中作为类型有效,但在匿名字段中无效
  • 为什么索引包含类型不起作用?为什么它不起作用?

感谢您的澄清。

最佳答案

  1. Anonymous fields只能命名为类型。你可能有点困惑 Type , LiteralTypeTypeName .

  2. 引用匿名字段是规范规定的,始终通过其类型名称来完成。因此 Test.Embedded[key] 是唯一合法的形式。在这里你可能会混淆嵌入字段方法,它是从嵌入字段继承的,不需要使用字段名和字段,它必须使用它。

关于映射为匿名结构成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18013476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com