我在嘗試實現接口(在golang的其他程序包中定義)時遇到了一些問題。我對下面的問題做了些微的闡述界面:package interfacestype Interface interface { do(param int) int}執行:package implementationstype Implementation struct{}func (implementation *Implementation) do(param int) int { return param}Main.go:package mainimport ( "test/implementing-interface-in-different-package/implementations" "test/implementing-interface-in-different-package/interfaces")func main() { var interfaceImpl interfaces.Interface interfaceImpl = &implementations.Implementation{}}錯誤信息:test/implementing-interface-in-different-package./main.go:10:16: cannot use implementations.Implementation literal (type implementations.Implementation) as type interfaces.Interface in assignment: implementations.Implementation does not implement interfaces.Interface (missing interfaces.do method) have implementations.do(int) int want interfaces.do(int) int是否可以從其他包中實現接口?
1 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
問題在于您的do
函數沒有從implementations
包中導出,因為它以小寫字母開頭。因此,從包的角度來看main
,變量interfaceImpl
無法實現接口,因為它看不到do
函數。
重命名您的接口函數為大寫字母Do
以解決此問題。
- 1 回答
- 0 關注
- 1089 瀏覽
添加回答
舉報
0/150
提交
取消