我试图搜索一下,弄清楚它是如何工作的,但我找不到解释。
如果我的变量data
类型为interface{}
(data interface{}
)
eventData := data.(map[string]interface{})
会做什么?我知道界面可以代表很多东西,但是对于他在这里发生的事情的高级概述是什么?
答案 0 :(得分:1)
这是一种类型断言:
类型断言提供对接口值的基本具体值的访问。
t := i.(T)
https://tour.golang.org/methods/15
如果asserion不能保持它将引发恐慌。要测试该值是否为特定类型T,您可以使用:
t, ok := i.(T)
Ok是一个布尔值,如果断言成立则为true
,否则为false
。