interface{}是个空接口,所以包括int string bool 等任意类型都实现了这个接口。
所以我们可以 var a interface{} 可以为a变量赋值任意的数据类型。比如说 a = "string",当我们想判断此变量具体是什么类型的时候,可以使用类型断言,具体语法如下:
var a interface{}
a = "test string"
value, ok = a.(string) //返回两个值,value是值,ok为true表示断言正确
value2, ok2 = a.(int) //此时 ok2 为false,value2为0
当然,在最新版本的Go里,通用类型官方建议使用 any。即 var a any