隱式 接口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())
}
保持進步
但願每一個人都能找到本身喜歡的方式生活、工做。方法