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)。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。