Golang接口简单了解

在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

 

posted @ 2018-09-17 00:01  温柔的风  阅读(493)  评论(0编辑  收藏  举报