在Go語言中,接口(interface)是一種抽象類型,它定義了一組方法的集合。接口類型的變量可以存儲任何實現(xiàn)了這些方法的具體類型的值。接口類型的使用步驟如下:
type
關(guān)鍵字定義接口類型,使用interface
關(guān)鍵字指定接口的方法集合。例如:type Shaper interface {
Area() float64
Perimeter() float64
}
上述代碼定義了一個Shaper
接口,該接口定義了兩個方法Area()
和Perimeter()
。
type Rectangle struct {
width, height float64
}
func (r Rectangle) Area() float64 {
return r.width * r.height
}
func (r Rectangle) Perimeter() float64 {
return 2 * (r.width + r.height)
}
上述代碼定義了一個Rectangle
類型,并為其實現(xiàn)了Shaper
接口中的方法。
var s Shaper
s = Rectangle{width: 5, height: 3}
fmt.Println(s.Area())
fmt.Println(s.Perimeter())
上述代碼中,將一個Rectangle
類型的值賦給接口類型的變量s
,然后通過該變量調(diào)用接口中定義的方法。
需要注意的是,Go語言的接口是隱式實現(xiàn)的,也就是說,只要一個類型實現(xiàn)了接口中定義的所有方法,那么該類型就被視為實現(xiàn)了該接口,無需顯式聲明。這一特性使得Go語言的接口非常靈活和易于使用。