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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM