在Go語言中,接口是一種抽象類型,它定義了一組方法,但沒有具體的實現。要實現一個接口,你需要創建一個類型,并為其提供接口中所有方法的實現。這被稱為實現接口。
要實現一個接口,你需要遵循以下步驟:
interface
關鍵字定義一個接口,并在其中聲明所需的方法。例如:type Shape interface {
Area() float64
Perimeter() float64
}
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
的結構體,并為其提供了Area()
和Perimeter()
方法的實現。
func PrintShapeInfo(s Shape) {
fmt.Printf("Area: %v, Perimeter: %v\n", s.Area(), s.Perimeter())
}
func main() {
r := Rectangle{Width: 3, Height: 4}
PrintShapeInfo(r) // 輸出:Area: 12, Perimeter: 14
}
在這個例子中,我們將Rectangle
類型的變量r
傳遞給PrintShapeInfo
函數,該函數接受一個Shape
接口類型的參數。由于Rectangle
實現了Shape
接口的所有方法,因此可以將其傳遞給該函數。
總結一下,要實現一個接口,你需要創建一個類型,并為其提供接口中所有方法的實現。Go語言會自動檢查類型是否實現了接口,但有時你可能需要顯式地進行類型斷言。