代码
type People interface {
Show()
}
type Student struct {
}
func (stu *Student) Show() {
}
func live() People {
var stu *Student
return stu
}
func main() {
if live() == nil {
fmt.Println("A")
} else {
fmt.Println("B")
}
}
我查了好久也没找到 为什么 live()返回值强制转换为 interface 类型后 live 返回值依然为 nil,但是 live() == nil 为 false ! 请大神指点一下。
1
koebehshian 2017-08-22 16:13:22 +08:00 1
|
2
xrlin 2017-08-22 16:15:24 +08:00 via iPhone 1
Interface 转换后有类型 值两部分
|
3
Muninn 2017-08-22 16:18:53 +08:00 1
反正尽量少写 == nil。。。
一楼说的很清楚了 我不明 error 都只敢!= |
4
jarlyyn 2017-08-22 16:21:51 +08:00
nil 和 interface(nil)是两个东西……
|
5
drzhaug OP 多谢各位啦
|