2016-12-14 96 views
1

当您使用不想实现的方法定义接口时,Golang中是否存在与Python中的NotImplementedException一样的等价物?这是惯用的Golang吗?Golang等效于Python的NotImplementedException

例如:

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何时会被调用(例如,如果它是关闭文件并且你没有关闭文件,那么你可以什么也不做,并返回成功)。总之,强烈建议您提供更多信息以获得更好的答案。 – fstanis

回答

2

通常在golang如果你想实现的错误处理返回一个错误

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

然后你就可以返回一个错误。 你也可以在注释中记录或恐慌@coredump。

0

一个空VAR将做到这一点

var _ MyInterface = &Thing{} 

如果Thing没有实现接口MyInterface,编译将会失败