golang中的nil

      golang中的nil与其他语言中的语义是一样的,就是代表引用类型的默认值,但是不一样的是,

      golang中有多种引用类型:pointer、interface、slice、map,channel, function;因此,每种引用类型的默认值,是不一样的,就和基础类型中,bool的默认值是false, int的默认值是0一样作为一个强类型语言,不同引用类型的判空(nil)规则是不同的; 

      interface的判空规则是,需要判断类型和值是否都为nil(interface的底层是有类型和值构成的) slice的判空,需要判断slice引用底层数组的指针为空,容量和size均为0 因此,判断nil的行为时,需要结合nil指向的具体类型,然后做判断

猜你喜欢

转载自blog.csdn.net/ma2595162349/article/details/108897389