文章预览
本文翻译自:How to Check for an Empty Struct in Go。 本文概述了几种在 Go 中判断结构体是否为空的方法,适用于具有 可比较字段 和 不可比较字段 的结构体。Go 中的空结构体是指所有字段均设置为对应字段零值的结构体。 使用零值字面量进行检查 对于仅包含可比较字段的结构体,只需要将结构体实例与其 零值字面量 进行比较: package main import ( "fmt" ) type Person struct { name string age int email int } func main () { var p1 Person p2 := Person{ name: "John" , age: 45 , } fmt.Println(p1 == Person{}) fmt.Println(p2 == Person{}) } true false 确保在 if 语句中使用括号括住结构体字面量,以避免出现解析问题: if p1 == (Person{}) { } 对于指向结构的指针,请确保在比较之前取消引用: p3 := {} if *p3 == (Person{}) { } 使用 reflect.DeepEqual() 对于具有 不
………………………………