在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