1
考慮下面的程序:如何使用類型別名接口
package main
import (
"fmt"
)
type MyMethod func(i int, j int, k int) (string, error)
type MyInterface interface {
Hello(i int, j int, k int) (string, error)
}
type myMethodImpl struct {}
func (*myMethodImpl) Hello(i int, j int, k int) (string, error) {
return fmt.Sprintf("%d:%d:%d\n", i, j, k), nil
}
func main() {
var im MyInterface = &myMethodImpl{}
im.Hello(0, 1, 2)
}
如何在接口聲明中使用的MyMethod而不是重複的方法簽名的?
感謝您的回答。但我不認爲它完全回答了我的問題。可能是我沒有問正確的問題。那麼沒有辦法分享方法簽名?我的問題的重點是我有一個參數大的方法。當我想定義接口和類型時,我可以避免重複它嗎? ?我正在考慮在多個接口和結構中使用它。如果我正確地閱讀它,看起來沒有辦法從您的答覆中實現它。 –
我不認爲在Go中將類型定義爲方法是不可能的。爲什麼要這樣?這樣的混合會使代碼不可讀。 – apxp
感謝您的回答。如果需要,我會按照你的建議使用結構嵌入。 –