DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go 的 nil 是什么?nil slice、nil map、nil interface 的区别与陷阱

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

nil 是零值,表示无值/空。nil slice:var s []int,len=0、cap=0、底层 ptr=nil,可 append、可 range,与空切片 len 都 0;nil map:var m map[int]int,读返回零值、写(赋值)会 panic,必须先 make;nil interface:interface{} 变量没赋任何值时才是 nil,注意“含类型指针的接口”不等于 nil(如 var p *T=nil; var i interface{} = p,i != nil,经典面试坑);nil 指针调用方法会 panic(除非方法内判 nil)。

下载推广海报

圈内讨论推广海报

《Go 的 nil 是什么?nil slice、nil map、nil interface 的区别与陷阱》完整推广海报
REPLIES

回复

0 条回复
暂无回复。