判断Golang接口是否实现

栏目: Go · 发布时间: 6年前

内容简介:今天在看beego config模块fake.go文件的时候,看到var _ Configer = new(fakeConfigContainer)这行代码,一开始不懂这行代码的功能是什么?后面了解到这行代码的作用是判断fakeConfigContainer结构体是否实现了Configer这个接口案例:

今天在看beego config模块fake.go文件的时候,看到var _ Configer = new(fakeConfigContainer)这行代码,一开始不懂这行代码的功能是什么?

后面了解到这行代码的作用是判断fakeConfigContainer结构体是否实现了Configer这个接口

案例:

type A interface {
    Print()
}

type B struct {
}

func (B)Print()  {
}

var _ A = new(B)

解释:

1)这样写的话,就可以确保B结构实现了A接口,如果没有实现的话,ide会提示报错或者编译的时候会报错。

另外一篇博客 上看到一个扩展内容:

var _ A = (*B)(nil)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言名题精选百则技巧篇

C语言名题精选百则技巧篇

冼镜光 / 机械工业出版社 / 2005-7 / 44.00元

《C语言名题精选百则》(技巧篇)收集了100则C语言程序设计题,共分9类。第一类比较简单,主要希望读者了解到《C语言名题精选百则》(技巧篇)的题目、解法与其他书籍之间的差异;第二至六类分别是关于数字、组合数学或离散数学、查找、排序、字符串等方面的题目;第七类列出了一些不太容易归类的题目,如Buffon丢针问题、Dijkstra的三色旗问题等;第八类则收录了一些有趣的、娱乐性的题目,如魔方阵等;第九......一起来看看 《C语言名题精选百则技巧篇》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具