2016-06-17 7 views
3

2つの構造体AとBの2つのメソッドがあります。 2メソッドの内容は同じです。golang、2つのメソッドを結合するメソッドの内容が同じです

func (t *A) TestGo() error { 
    ... 
    return t.abc(); // call method of struct 
} 

2種類の入力が可能な関数を書くことができますか。このように

fun TestGo(t .?.) error { 
    ... 
    return t.abc(); 
} 

これは、後で維持する方が簡単です。ありがとう!

答えて

5

あなたはこの方法で構造体のためのインタフェースを作成することができます。

type ABCer interface { 
    abc() error 
} 

次に、あなたのTestGo機能は、このインタフェースを受け入れることができます。

func TestGo(t ABCer) error { 
    return t.abc() 
} 

Live demo

+0

ロック!ありがとう、トン! –

関連する問題