Go语言接口类型:接口类型变量的内部表示 官网
在Go语言里,接口类型变量有独特的内部表示。接口变量本质是个结构体,包含两个字段:类型信息和值信息。 type Interface struct { tab *itab // 类型信息 data unsafe.Pointer // 值信息} 下面看个简单例子: package mainimport "fmt"// 定义接口type Shape interface { Area() float64}// 定义结构体type Rectangle struct { Width float64 Height float64}// 实现接口方法func (r Rectangle) Area() float64 { return r.Width * r.Height}func main() { var s Shape r := Rectangle{Width: 5, Height: 10} s = r fmt.Println(s.Area()) // 输出结果: 50} 要注意,接口变量赋值时,类型信息和值信息都会被更新。