go語言 判斷一個實例是否實現了某個接口interface


go代碼:

package main

import "fmt"

type Animal interface {
    run()
    walk()
}

type Dog struct {
    Id int
}

func (dog Dog) run()  {
    fmt.Printf("I am Dog,I can Run!\n")
}

func (dog Dog) walk(){
    fmt.Printf("I am Dog,I can walk!\n")
}

type Pig struct {
    Id int
}

func (pig Pig) run()  {
    fmt.Printf("I am Pig,I can Run!\n")
}

func main() {
    dog := Dog{100}
    var animal0 interface{} = dog
    if _, ok := animal0.(Animal); ok {
        fmt.Printf("animal0 implement Animal interface!\n")
    }else {
        fmt.Printf("animal0 not implement Animal interface!\n")
    }

    pig:=Pig{18}
    var animal1 interface{} = pig
    if _, ok := animal1.(Animal); ok {
        fmt.Printf("animal1 implement Animal interface!\n")
    }else {
        fmt.Printf("animal1 not implement Animal interface!\n")
    }

}

結果:

animal0 implement Animal interface!
animal1 not implement Animal interface!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM