Видях две части от Go код, използвайки този модел:
type SomeType struct{
Field1 string
Field2 bool
_ struct{} // <-- what is this?
}
Може ли някой да обясни какво постига този код?
Отговори:
6 за отговор № 1Тази техника налага ключови полета при деклариране на структура.
Например, структурата:
type SomeType struct {
Field1 string
Field2 bool
_ struct{}
}
може да се декларира само с ключови полета:
// ALLOWED:
bar := SomeType{Field1: "hello", Field2: "true"}
// COMPILE ERROR:
foo := SomeType{"hello", true}
Една от причините за това е да се позволи добавяне на допълнителни полета в структурата в бъдеще, без да се нарушава съществуващия код.