go 接口
隐式 接口
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。接口类型是由一组方法定义的集合。
接口类型的值可以存放实现这些方法的任何值。
类型通过实现那些方法来实现接口。 没有显式声明的必要;所以也就没有关键字“implements“。
隐式接口解藕了实现接口的包和定义接口的包:互不依赖。
package mainimport ( "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()) }
保持进步
希望每个人都能找到自己喜欢的方式生活、工作。

更多精彩