package main
import "fmt"
type I interface{
Print()
}
type A struct{}
func(a *A) Print(){}
func New1() I{
var a *A = nil
return a
}
func New2() I{
var a I = nil
return a
}
func main(){
a := New1()
if a == nil {
fmt.Println("a is nil")
}else{
fmt.Println("a is not nil") //执行
}
b := New2()
if b == nil {
fmt.Println("b is nil") //执行
}else{
fmt.Println("b is not nil")
}
}
Golang的interface 要值和类型都为nil 才等于 nil,所以判断返回值的时候要小心
