1.我经常看到在项目里面使用了下面这些代码
if data != nil && len(data) != 0 {
do xxx
}
我就在思考,为啥要多写一个判断data != nil
因此我测试了下面的代码,发现完全可以去掉第一个判断
因为len(nil)==0,因此第一个判断去掉没有任何问题的
package main
import “fmt”
func main() {
var data1 interface{} = nil
data2 := interface{}{}
data3 := make(interface{}, 0, 8)
fmt.Println(len(data1), len(data2), len(data3))
}
result:0 0 0
2.由此还能想到很多其他场景,下面两个也没必要判断data==nil的
if len(data) == n {
}
if len(data) != n {
}
这是一个从 https://studygolang.com/topics/9938 下的原始话题分离的讨论话题