RSS
菜单

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

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 的区别与陷阱》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。