接口的要点是您可以进行ShowMeTheCircumference
如下所示的通用功能。
package main
import (
"fmt"
"math"
)
type Circer interface {
Circ() float64
}
type Square struct {
side float64
}
type Circle struct {
diam, rad float64
}
func (s *Square) Circ() float64 {
return s.side * 4
}
func (c *Circle) Circ() float64 {
return c.diam * math.Pi
}
func ShowMeTheCircumference(name string, shape Circer) {
fmt.Printf("Circumference of %s is %f\n", name, shape.Circ())
}
func main() {
square := &Square{side: 2}
circle := &Circle{diam: 10}
ShowMeTheCircumference("square", square)
ShowMeTheCircumference("circle", circle)
}