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

posted @ 2019-11-22 14:51  暧昧Gg  阅读(1395)  评论(0)    收藏  举报