在Go語言中,接口是一種類型,它定義了一組方法的集合。接口的默認方法是指實現了接口的結構體可以自動獲得的方法,而不需要顯式地實現這些方法。從Go 1.8開始,接口可以包含默認方法。要定義一個接口的默認方法,請在方法聲明前添加default
關鍵字。
以下是一個示例,展示了如何定義一個包含默認方法的接口:
package main
import "fmt"
// 定義一個名為Printer的接口,包含一個名為Print的默認方法
type Printer interface {
Print()
// 定義一個名為DefaultMessage的默認方法
DefaultMessage() string {
return "This is a default message."
}
}
// 定義一個名為MyPrinter的結構體,實現了Printer接口
type MyPrinter struct{}
// 實現Printer接口的Print方法
func (p MyPrinter) Print() {
fmt.Println("Printing using MyPrinter.")
}
func main() {
// 創建一個MyPrinter實例
myPrinter := MyPrinter{}
// 調用MyPrinter實例的Print方法
myPrinter.Print()
// 調用MyPrinter實例的DefaultMessage方法,由于MyPrinter沒有實現該方法,將使用接口中的默認方法
fmt.Println(myPrinter.DefaultMessage())
}
在這個示例中,我們定義了一個名為Printer
的接口,其中包含一個名為Print
的默認方法和一個名為DefaultMessage
的默認方法。然后,我們定義了一個名為MyPrinter
的結構體,并實現了Printer
接口的Print
方法。在main
函數中,我們創建了一個MyPrinter
實例,并調用了它的Print
方法和DefaultMessage
方法。由于MyPrinter
沒有實現DefaultMessage
方法,因此將使用接口中的默認方法。