[golang] nil

在go中,如果只声明而没有赋值,则这个变量会被默认一个零值:

bool

false

numbers

0

string

""

points

nil

slices

nil

maps

nil

不能向值为nil的变量赋值:

(1) 向nil empty赋值会报错:panic:assign to entry in nil map

其他操作如:for range遍历,if v,ok := map1[k];ok等不会报错

 

(2) 向nil slice赋值:panic: runtime error: index out of range

nil slice不能索引,其他操作如:for range遍历,append正常都没有问题

 

(3) 对nil的指针进行解引用,会引发panic: runtime error: invalid memory address or nil pointer dereference

 

(4) 对于一个结构体,如果只声明没有进行初始化,则结构体内的元素会为对应类型的零值

对于nil的struct进行struct.filed读,不会报错,但是会出现意想不到的问题

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值