隐式 接口spa
接口类型是由一组方法定义的集合。指针
接口类型的值能够存放实现这些方法的任何值。 接口
类型经过实现那些方法来实现接口。 没有显式声明的必要;因此也就没有关键字“implements“。import
隐式接口解藕了实现接口的包和定义接口的包:互不依赖。float
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())
}
保持进步
但愿每一个人都能找到本身喜欢的方式生活、工做。方法