加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何将golang结构标记为实现接口?

发布时间:2020-12-16 09:29:06 所属栏目:大数据 来源:网络整理
导读:我有界面: type MyInterface interface { ... } 我想标记我的结构实现它.我认为这是不可能的,但我想确定. 我做了以下,但我认为它会产生一个实现接口的匿名变量.我对吗? type MyStruct struct { ... MyInterface } 解决方法 在Go中,实现接口是隐式的.无需将
我有界面:

type MyInterface interface {
  ...
  }

我想标记我的结构实现它.我认为这是不可能的,但我想确定.

我做了以下,但我认为它会产生一个实现接口的匿名变量.我对吗?

type MyStruct struct {
    ...
    MyInterface
  }

解决方法

在Go中,实现接口是隐式的.无需将其明确标记为实现接口.虽然它有点不同,但你可以使用赋值来测试一个类型是否实现了一个接口,如果没有,它会产生一个编译时错误.它看起来像这样(来自Go的FAQ页面的例子);

type T struct{}
var _ I = T{}       // Verify that T implements I.
var _ I = (*T)(nil) // Verify that *T implements I.

要回答你的第二个问题,是的,就是说你的结构由一个实现该接口的类型组成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读