2016-12-14 6 views
1

Golangには、まだ実装したくないメソッドを持つインタフェースを定義するときにPythonでNotImplementedExceptionを生成するのに相当するものがありますか?この慣用的なゴランですか?例えばGolangはPythonのNotImplementedExceptionに相当します

:あなたはエラーに

type MyInterface interface { 
    Method1() bool 
    Method2() (bool, error) 
} 

を返すエラー処理を実装する場合golangで通常

type MyInterface interface { 
    Method1() bool 
    Method2() bool 
} 


// Implement this interface 
type Thing struct {} 
func (t *Thing) Method1() bool { 
    return true 
} 

func (t *Thing) Method2() bool { 
    // I don't want to implement this yet 
} 
+3

を失敗することは慣用的であるかどうかは重要ですか?それがパニックやログを助けるなら、それで十分でしょう。 – coredump

+1

必ずしも重要ではありませんが、私はまだGoを学んでおり、それを使う正しい方法を理解したいと思っています。 – Alex

+1

私はこれに正解がないと感じます。インタフェースは暗黙的に実装されるため、この場合にインタフェースを作成した場合は、それを修正するか、2つの別々のインタフェースに分けてください。もしあなたがいないのであれば、ドキュメントを読んで、インタフェースがどのような振る舞いをしているのか、そして 'Method2'はいつ呼び出されるのかを理解しておくべきでしょう。(例えば、ファイルが閉じていて閉じようとしていなければ、何もせずに成功を返す)。要するに、より良い答えを得るために、より多くの情報を提供することを強くお勧めします。 – fstanis

答えて

2

その後、あなたがエラーを返すことができます。 コメントで@coredumpが言ったように、ログやパニックを起こすこともできます。 Thingをコンパイル、インターフェイスMyInterfaceを実装していない場合

0

空varがこの

var _ MyInterface = &Thing{} 

行います

関連する問題