-
面试官:值为 nil 为什么不等于 nil ?
小明同学去面试被问到了这么一个面试题,请看代码: var f func() var a *struct{} list := []interface{}{f, a} for _, item := range list { if item == nil { fmt.Println("nil") } } 请问输出结果是啥? 可能很多同学,会认为结果是输出两个 nil。 为什么呢? 因为 f 和 a 都没初始化,都是 nil,所以循环遍历后肯定也是 nil。 如果你的答案也是这样,那就掉进坑里了…