我已经看到了使用这种模式的两段Go代码:
type SomeType struct{ Field1 string Field2 bool _ struct{} // <-- what is this? }
谁能解释这段代码的作用?
声明结构时,此技术将强制使用键控字段。
例如,该结构:
type SomeType struct { Field1 string Field2 bool _ struct{} }
只能用键控字段声明:
// ALLOWED: bar := SomeType{Field1: "hello", Field2: "true"} // COMPILE ERROR: foo := SomeType{"hello", true}
这样做的原因之一是允许将来在不破坏现有代码的情况下将其他字段添加到结构中。