/*
go接口
接口是一个方法签名的集合
所谓方法签名 就是指方法的声明而不包括实现
*/
package main
import (
"fmt"
"math"
)
type geometry interface {
area() float64
perim() float64
}
type square struct {
width, height float64
}
type circlr struct {
radius float64
}
func (s *square) area() float64 {
}
func (s *square) perim() float64 {
}
func (c *circlr) area() float64 {
}
func (c *circlr) perim() float64 {
}
func measure(g gemetry) {
g.area()
g.perim()
}
func main() {
s := square{width:3, height:4}
c := circle(radius:5)
measure(s)
measure(c)
}
//也就是说如果结构体A实现了接口B定义的所有方法 那么A也是B类型