关于if data != nil && len(data) != n { }的思考

jan-bar · · 337931 次点击
有两种需要区分的切片声明方式,一种是 var s []int,这种叫做 nil 切片,底层数组是 nil,即没有依赖任何的底层数组。 一种是 s := make([]int),这种叫做空切片,底层数组不是 nil,而是长度为零的数组,即有依赖,但是为空的。这两种在 len() 计算的时候都会输出 0
#6
更多评论
是的,如果确定是一个slice, 的确不需要判断是否nil, 这属于画蛇添足了, 因为slice天生就不可能为nil
#1
jan-bar
想要拥有,必定付出。
slice是可能为nil的,只是len求nil的slice也是等于0所以才不需要判断nil额。
#2