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,所以判斷返回值的時候要小心
