Go判断结构体类型是否为空(nil)
发布日期:2021-06-30 21:12:50
浏览次数:2
分类:技术文章
本文共 832 字,大约阅读时间需要 2 分钟。
目录
前言
使用任何编程语言都会遇到判空的问题,那么Golang如何判空呢?说真的,这种方式我还是很意外的。
正文
说到Golang的判空机制,确实刷新了我的认知,多少有些丑 ^_^,特别是对于自定义的结构体类型,并不是简单的与 nil 做比较。
直接上代码:
package main import ( "fmt")type Person struct { Name string Age int}func main() { var one Person one.Name = "xiaoming" one.Age = 12 var two Person if one != (Person{}) { fmt.Println(one.Name, "的年龄是", one.Age) } else { fmt.Println("the person is nil") } if two != (Person{}) { fmt.Println(two.Name, "的年龄是", two.Age) } else { fmt.Println("the person is nil") } // if two != nil { // fmt.Println(two.Name, "的年龄是", two.Age) // } else { // fmt.Println("the persion is nil") // }}
代码结果:
xiaoming 的年龄是 12
the person is nil
运行结果截图:
如果放开上面代码的注释,编译器会提示如下错误信息:
localhost:test lz$ go run nil.go
# command-line-arguments ./nil.go:32:9: invalid operation: two != nil (mismatched types Person and nil)
运行结果截图:
转载地址:https://liuzhen.blog.csdn.net/article/details/112667774 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月16日 21时56分57秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于MATLAB的二进制数字调制与解调信号的仿真——2PSK
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——AM
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——DSB
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——SSB
2019-04-30
操作系统实验之生产者和消费者程序
2019-04-30
操作系统实验之猴子过桥问题的模拟程序
2019-04-30
POJ - 3067 Japan (树状数组 思维)
2019-04-30
POJ - 2352 Stars (树状数组 入门题)
2019-04-30
HDU - 1166 敌兵布阵 (树状数组模板题/线段树模板题)
2019-04-30
CodeForces - 761C Dasha and Password (思维 暴力)
2019-04-30
POJ - 2481 Cows (树状数组 入门题)
2019-04-30
ACM-ICPC 2018 焦作赛区网络预赛 I. Save the Room
2019-04-30
CodeForces - 987C Three displays (暴力/dp)
2019-04-30
计蒜客 NAIPC 2016 F. Mountain Scenes(dp)
2019-04-30
牛客国庆集训派对Day4——I 连通块计数(思维)
2019-04-30
牛客国庆集训派对Day4——G 区间权值(找规律,双重前缀和)
2019-04-30
牛客国庆集训派对Day5——L 数论之神(找规律/数论)
2019-04-30