在Golang中,接口定義的方式非常簡單,只需要使用關鍵字type
和interface
即可。接口定義了一組方法的集合,任何類型只要實現了接口中的所有方法,就被認為是實現了該接口。
接口的定義方式如下:
type InterfaceName interface {
Method1() returnType1
Method2() returnType2
// 可以定義多個方法
}
接口的實現也非常簡單,只需要在類型上實現接口中的所有方法即可。例如,如果我們有一個接口Animal
和一個結構體Dog
,我們可以實現Animal
接口:
package main
import (
"fmt"
)
// 定義接口
type Animal interface {
Speak() string
}
// 定義結構體
type Dog struct {
Name string
}
// 實現接口方法
func (d Dog) Speak() string {
return "Woof!"
}
func main() {
// 創建一個Dog類型的變量
var myDog Animal
myDog = Dog{Name: "Buddy"}
// 調用接口方法
fmt.Println(myDog.Speak()) // 輸出: Woof!
}
在上面的例子中,我們定義了一個接口Animal
,其中有一個方法Speak()
,然后我們定義了一個結構體Dog
,并實現了Animal
接口中的Speak()
方法。最后,我們創建了一個Dog
類型的變量,并將其賦值給接口類型Animal
,然后調用了接口方法Speak()
。