/ / Каква е целта на поле с име "_" (подчертаване), съдържащо празна структура? - отивам, струк

Каква е целта на поле, наречено "_" (подчертаващо), съдържащо празна структура? - върви, структура

Видях две части от 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}

Една от причините за това е да се позволи добавяне на допълнителни полета в структурата в бъдеще, без да се нарушава съществуващия код.