登录
首页 >  Golang >  Go教程

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

时间:2024-11-14 09:34:04 439浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《Go 中如何判断结构体和结构体指针是否为空?》,聊聊,希望可以帮助到正在努力赚钱的你。

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

如何在 go 中区分结构体和指针的空值?

go 语言中,结构体本身不能为 nil,只有其指针可以。当声明一个结构体变量时,其字段会自动初始化为零值。

判断空结构体

要判断一个结构体是否为空,需要检查其所有字段的值是否为它们的初始值:

type product struct {
    name, category string
    price          float64
    upc            int64
}

func isproductempty(p product) bool {
    return p.name == "" && p.category == "" && p.price == 0 && p.upc == 0
}

判断空指针

判断一个结构体指针是否为 nil 很简单:

var prdptr *product

if prdptr == nil {
    // 指针为空
}

示例

package main

import "fmt"

type product struct {
   name, category string
   price          float64
   upc            int64
}

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("指针为空")
   } else {
       fmt.println("指针不为空")
   }
}

输出:

值:  0
指针: <nil>
结构体为空
指针为空

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>