我最近喜欢 Go 编程语言,到目前为止我发现它很棒,但我真的很难理解接口。我已经阅读了很多关于它们的内容,但它们对我来说仍然很抽象。我写了一小段代码,使用下面的接口:package mainimport ( "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 (c *Circle) Area() float64 { if c.rad == 0 { var rad = c.diam / 2 return (rad*rad) * math.Pi } else { return (c.rad*c.rad) * math.Pi }}func main() { var s = new(Square) var c = new(Circle) s.side = 2 c.diam = 10 var i Circer = s fmt.Println("Square Circ: ", i.Circ()) i = c fmt.Println("Circle Circ: ", i.Circ())}我真的看不出 Circer 界面的用途。方法已经写好了,我可以通过直接在结构上调用它们来节省两行代码,而不是使用 Circer 作为包装器。有什么我想念的吗?我是否错误地使用了界面?任何帮助或示例表示赞赏。
3 回答
- 3 回答
- 0 关注
- 200 浏览
添加回答
举报
0/150
提交
取消