• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Go 接口机理

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

    接口的主要用法包含从类型赋值到接口,接口之间赋值和接口查询等。

1.类型赋值给接口

   从一个简单的示例开始:


     实现逻辑:需要获取这个类型的所有方法集合(集合A),并获取该接口包含的所有方法集合(集合B),然后判断集合B是否为集合A的子集,是则意味着该类型实现了该接口。


2.接口查询

   按Go语言的定义,接口查询其实是在做接口方法查询,只要该类型实现了某个接口的所有方法,就可以认为该类型实现了此接口。相比类型赋值给接口时可以做的编译期优化,运行期接口查询就只能老老实实地做一次匹配了。下面我们来看一下基本的匹配过程:


   这是一个动态的接口匹配过程。这个流程就是按接口信息表中包含的方法名逐一查询匹配,如果发现传入的类型信息ti的方法列表是intf的方法列表的超集(即intf方法列表中的所有方法都存在ti方法列表中),则表示接口查询成功。

   从这个过程可以看到,整个过程其实跟发起查询的那个源接口毫无关系,真正的查询是针对源接口所指向的具体类型以及目标接口。


3.接口赋值

   接口赋值,就是将一个接口直接赋值给另外一个接口。能否赋值成功的依据是源接口和目标接口是否存在方法集合的包含关系。



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
go笔记1发布时间:2022-07-10
下一篇:
[Go]TCP服务中增加消息队列与工作池发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap