当左侧值与右侧值具有相同名称时,编写Golang结构的惯用方法是什么?例:
type Something struct {
Names Names
}
type Names struct {
...
}
谢谢!
将名称赋予与其类型名称相同的字段在Go中完全有效,并且经常使用。
标准库中的一些示例:
http.Request
的领域:
URL *url.URL
Header Header
Response *Response
http.Server
的领域:
Handler Handler
png.Encoder
的领域:
CompressionLevel CompressionLevel
这不会造成混淆或歧义,因为引用结构变量的字段是varName.FieldName
(这总是表示字段而不是它的类型),并且引用类型是declaringPackage.TypeName
。即使类型在同一个包中声明(因此declaringPackage
“缺失”)也不一样,因为varName
不能“空”。