php中文网

Go 中如何判断结构体和结构体指针是否为空?

php中文网

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中文网其它相关文章!