Go的interface源码在Golang源码的runtime
目录中。
Go在不同版本之间的interface结构可能会有所不同,但是,整体的结构是不会改变的,此文章用的Go版本是1.11。
Go的interface是由两种类型来实现的:iface
和eface
。
其中,iface
表示的是包含方法的interface,例如:
type Person interface {
Print()
}
而eface
代表的是不包含方法的interface,即
type Person interface {}
或者
var person interface{} = xxxx实体
eface
eface
的具体结构是: