
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。










