// 空结构体
type eface struct { // 16 字节
_type *_type
data unsafe.Pointer
}
// 带有方法的结构体
type iface struct { // 16 字节
tab *itab
data unsafe.Pointer
}
Go 语言使用 runtime.iface 表示第一种接口,使用 runtime.eface表示第二种不包含任何方法的接口 interface{},两种接口虽然都使用 interface 声明,但是由于后者在 Go 语言中很常见,所以在实现时使用了特殊的类型。
所以在传递interface时, 传递的是上面两种结构体的一种, 都是16字节.