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