隐式 接口

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

接口类型是由一组方法定义的集合。

接口类型的值可以存放实现这些方法的任何值。 

类型通过实现那些方法来实现接口。 没有显式声明的必要;所以也就没有关键字“implements“。

隐式接口解藕了实现接口的包和定义接口的包:互不依赖。

package main
import (     "fmt"     "math" ) //定义接口 type calc interface{     Abs() float64 } //定义结构Vertex type Vertex struct {     X, Y float64 } // Vertex实现Abs方法 接受者是指针 v *Vertex func (v *Vertex) Abs() float64 {     return math.Sqrt(v.X*v.X + v.Y*v.Y) } //定义结构Person type Person struct{     age int } // Person实现Abs方法 接受者是 值类型Person func (p Person) Abs() float64{     return float64(p.age) } func main() {     //v是指针     v := &Vertex{3, 4}     //p是值类型     p:=Person{age:23}     fmt.Println( v.Abs(),p.Abs()) }

保持进步
希望每个人都能找到自己喜欢的方式生活、工作。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄