要使類型滿足接口,該類型需要實現接口中定義的方法。但是,在下面的代碼片段中,沒有編寫任何方法,但通過使用作為匿名字段,它滿足 。myStructsomeInterfacesomeInterface有人可以幫忙解釋為什么嗎?謝謝。package mainimport "fmt"type someInterface interface { method1(int) string method2(string) string}type myStruct struct { someInterface body int}func main() { var foo someInterface bar := myStruct{} foo = bar // why no compile error?? fmt.Println(foo)}
1 回答

holdtom
TA貢獻1805條經驗 獲得超10個贊
myStruct嵌入 ,因此它具有在該接口中定義的所有方法。這也意味著,有一個名為 的字段,該字段未初始化,因此調用將崩潰。在使用它之前,您必須對其進行初始化。someInterfacemyStructsomeInterfacebar.method1
bar:=myStruct{}
bar.someInterface=someInterfaceImpl{}
bar.method1(0)
bar.method2("")
- 1 回答
- 0 關注
- 73 瀏覽
添加回答
舉報
0/150
提交
取消