nil 是一个有效的 slice
约 285 字小于 1 分钟
2025-09-04
nil 是一个有效的长度为 0 的 slice,这意味着,
您不应明确返回长度为零的切片。应该返回
nil来代替。Bad Good if x == "" { return []int{} }if x == "" { return nil }要检查切片是否为空,请始终使用
len(s) == 0。而非nil。Bad Good func isEmpty(s []string) bool { return s == nil }func isEmpty(s []string) bool { return len(s) == 0 }零值切片(用
var声明的切片)可立即使用,无需调用make()创建。Bad Good nums := []int{} // or, nums := make([]int) if add1 { nums = append(nums, 1) } if add2 { nums = append(nums, 2) }var nums []int if add1 { nums = append(nums, 1) } if add2 { nums = append(nums, 2) }
记住,虽然 nil 切片是有效的切片,但它不等于长度为 0 的切片(一个为 nil,另一个不是),并且在不同的情况下(例如序列化),这两个切片的处理方式可能不同。
更新日志
2025/9/4 15:48
查看所有更新日志
a059b-新增Uber的Go语言规范于
