Golang interface 判断 是否等于 nil
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,所以判断返回值的时候要小心
世界上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离;

浙公网安备 33010602011771号