在golang中接口相当于一个万能对象,和c++的auto差不多,比如定义一个存任何对象的map:
type mymap map[int]interface{} //以int为key,值可以存任何类型
type mydata struct {
id int
name string
}
func main()
{
mm:= make(mymap)
data1:= mydata{id:1,name:"data1"}
mm[1]=data1
//访问元素
if v,ok:= mm[1]; ok {
(v.(mydata).name) //这里用了到接口强制转换 v.(类型).val
}
}