作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有接口(interface):
type MyInterface interface {
...
}
我想标记我的结构实现了它。我认为这是不可能的,但我想确定。
我做了以下操作,但我认为它会产生一个实现接口(interface)的匿名变量。我说得对吗?
type MyStruct struct {
...
MyInterface
}
最佳答案
在 Go 中,实现接口(interface)是隐式的。无需明确将其标记为实现接口(interface)。虽然有点不同,但您可以使用赋值来测试类型是否实现了接口(interface),如果没有实现,则会产生编译时错误。看起来像这样(来自 Go 的常见问题解答页面的示例);
type T struct{}
var _ I = T{} // Verify that T implements I.
var _ I = (*T)(nil) // Verify that *T implements I.
要回答您的第二个问题,是的,那是说您的结构由实现该接口(interface)的类型组成。
关于go - 如何将 golang 结构标记为实现接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33089523/
我是一名优秀的程序员,十分优秀!