在阅读规范以及它们的“Effective Go”部分之后,我仍然不太了解界面如何在Go中工作。
喜欢,你在哪里定义它们?界面执法如何运作?有没有办法指定对象实现接口的地方,而不是简单地定义接口中的方法?
为初学者问题道歉;但我真的很难理解这一点。
答案 0 :(得分:3)
基本上,您可以定义如下界面:
type InterfaceNameHere interface {
MethodA(*arg1, *arg2)
MethodB(*arg3)
}
该特定接口定义要求实现接口的任何内容都具有带有2个参数的MethodA
方法和带有1个参数的MethodB
方法。
一旦你定义了它,当你尝试使用需要某个界面的东西时,Go会自动检查你正在使用的东西是否满足那个界面。您不必明确声明给定的东西满足给定的接口,当您尝试在预期满足它的场景中使用某些东西时,它就会自动检查。
答案 1 :(得分:3)