go 中的空结构体和空指针检查
在 go 语言中,不同于结构体,结构体指针可以为 nil。当声明结构体变量时,其字段自动初始化为零值。因此,要判断结构体是否为空,可逐个检查其字段是否为零值。对于结构体指针,则直接检查其是否为 nil 即可。
以下代码示例展示了如何检查空结构体和空指针:
import "fmt" type product struct { name, category string price float64 upc int64 } func isproductempty(prd product) bool { return prd.name == "" && prd.category == "" && prd.price == 0 && prd.upc == 0 } func main() { var prd product var prdptr *product fmt.println("值:", prd.name, prd.category, prd.price) fmt.println("指针:", prdptr) // 检查结构体是否为空 if isproductempty(prd) { fmt.println("产品结构为空。") } else { fmt.println("产品结构不为空。") } // 检查结构体指针是否为空 if prdptr == nil { fmt.println("产品指针为 nil。") } else { fmt.println("产品指针不为 nil。") } }
登录后复制
输出结果:
值: 0 指针: <nil> 产品结构为空。 产品指针为 nil。
登录后复制
以上就是Go 中如何判断结构体和结构体指针是否为空?的详细内容,更多请关注php中文网其它相关文章!