golang中的代码片段做了什么?

时间:2017-07-28 07:41:50

标签: go

我试图搜索一下,弄清楚它是如何工作的,但我找不到解释。

如果我的变量data类型为interface{}data interface{}

eventData := data.(map[string]interface{})会做什么?我知道界面可以代表很多东西,但是对于他在这里发生的事情的高级概述是什么?

1 个答案:

答案 0 :(得分:1)

这是一种类型断言:

  

类型断言提供对接口值的基本具体值的访问。

t := i.(T)

https://tour.golang.org/methods/15

如果asserion不能保持它将引发恐慌。要测试该值是否为特定类型T,您可以使用:

t, ok := i.(T)

Ok是一个布尔值,如果断言成立则为true,否则为false