Go语言中的类型断言,语法上是这样的: x.(T) 其中,x是interface接口的表达式,T是类型,称为被断言类型. 补充一下,接口有接口值的概念,其包括动态类型和动态值两部分. 类型断言根据T的不同可以分为两种情况: 1. T是具体类型 类型断言首先检查x的动态类型是否是T. 如果是,类型断言的结果就是x的动态值. 如果否,操作就会panic 例如, var w io.Writer w = os.Stdout f := w.(*os.File) // success: f == os.St…
7.2 Go type assertion 类型断言是使用在接口值上的操作. 语法x.(T)被称为类型断言,x代表接口的类型,T代表一个类型检查. 类型断言检查它操作对象的动态类型是否和断言类型匹配. 类型断言快速入门 package main import ( "fmt" ) type Point struct { x int y int } func main() { var a interface{} var point Point = Point{1, 2} //任何类型都实现…