栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是接口断言?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是接口断言?

它将指向具体类型的nil指针分配给接口类型的变量。这是证明具体类型满足接口的一种常见做法-
如果不满足,则该行将无法编译,并给出一个错误,即无法将具体类型分配给该接口类型的变量,以及为什么。

正如@JimB指出的那样,“接口断言”是由作者组成的术语。Go没有这样的术语。具体来说,这是类型转换,先转换

nil
为的指针
tmLogger
,然后将类型化的nil指针分配给接口类型的空白标识符变量
Logger
。如果
*tmLogger
不满足
Logger
,任务将无法编译;但是,在运行时,由于使用的是nil值,因此不会占用任何内存。

大概作者在“断言”的单元测试意义上比“类型断言”意义更多地使用了该术语-该行代码断言该类型实现了接口,否则,该行将失败。

鉴于这纯粹是测试实践,因此我个人将这些检查放在_test.go文件中,以便将它们包含在单元测试执行中,从最终二进制文件中排除,并且显然是测试套件的一部分,而不是应用程序逻辑。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号