type Test struct { }
Я знал, что это может быть способ проверить пустую структуру с помощью (Test{}) == test
. Тем не менее, он не работает для структуры, которая содержит только одно логическое поле. Учитывая этот пример:
package main
import "fmt"
type Test struct {
Foo bool
}
func main() {
empty := Test{}
test1 := Test{Foo: true}
test2 := Test{Foo: false}
fmt.Println(Test{} == test1) //False yay
fmt.Println(Test{} == test2) //True oh no ...
fmt.Println(Test{} == empty) //True yay
}
По сути, == думает, что структура, содержащая поле false
, идентична пустой структуре.
Есть ли лучший способ проверить пустую структуру или я что-то здесь упускаю?
Кроме того, вы можете задаться вопросом, почему в структуре только одно поле, ну, поскольку структура находится в стадии разработки, в дальнейшем у нее может быть больше полей.