Golang介面簡單瞭解

OldBoy~發表於2018-09-17

在Golang中,一個類只需要實現了介面要求的所有函式,我們就說這個類實現了該介面。

package main

import "fmt"

type Animal interface {
    Fly()
    Run()
}

type Animal2 interface {
    Fly()
}

type Bird struct {
}

func (bird Bird) Fly() {
    fmt.Println("Bird is flying!!!!")
}

func (bird Bird) Run() {
    fmt.Println("Bird is running!!!!")
}

func main() {

    var animal Animal

    bird := new(Bird)
    animal = bird

    animal = bird //把類例項直接賦值給介面

    animal.Fly()
    animal.Run()

}
Bird is flying!!!!
Bird is running!!!!

 空介面可以接收任何型別的值賦值

package main

import "fmt"

func main() {
    var test interface{}
    test = 123

    fmt.Printf("%T,%v\n", test, test)
    test = "abc"

    fmt.Printf("%T,%v\n", test, test)
    test = true

    fmt.Printf("%T,%v\n", test, test)
    test = 312.2

    fmt.Printf("%T,%v\n", test, test)

}
int,123
string,abc
bool,true
float64,312.2

 

相關文章