我使用这种模式看过两段Go代码:
type SomeType struct{
Field1 string
Field2 bool
_ struct{} // <-- what is this?
}
任何人都可以解释一下这段代码的用途吗?
答案 0 :(得分:10)
此技术在声明结构时强制执行键控字段。
例如,struct:
type SomeType struct {
Field1 string
Field2 bool
_ struct{}
}
只能用键控字段声明:
// ALLOWED:
bar := SomeType{Field1: "hello", Field2: "true"}
// COMPILE ERROR:
foo := SomeType{"hello", true}
这样做的一个原因是允许将来添加其他字段而不会破坏现有代码。