专栏名称: GoCN
最具规模和生命力的 Go 开发者社区
今天看啥  ›  专栏  ›  GoCN

在 Go 中如何检查结构体是否为空

GoCN  · 公众号  ·  · 2024-07-02 09:00
    

文章预览

本文翻译自: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() 对于具有 不 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览