我最近喜歡 Go 編程語(yǔ)言,到目前為止我發(fā)現(xiàn)它很棒,但我真的很難理解接口。我已經(jīng)閱讀了很多關(guān)于它們的內(nèi)容,但它們對(duì)我來說仍然很抽象。我寫了一小段代碼,使用下面的接口: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 界面的用途。方法已經(jīng)寫好了,我可以通過直接在結(jié)構(gòu)上調(diào)用它們來節(jié)省兩行代碼,而不是使用 Circer 作為包裝器。有什么我想念的嗎?我是否錯(cuò)誤地使用了界面?任何幫助或示例表示贊賞。
努力了解接口類型的目的
ibeautiful
2021-06-16 06:21:30