我最近开始寻找功能性的go示例,并发现了以下功能:
EventBus
现在在此函数中,如您所见,映射器的mapper := func (i interface{}) interface{} {
return strings.ToUpper(i.(string))
}
Map(mapper, New(“milu”, “rantanplan”))
//[“MILU”, “RANTANPLAN”]
值为:
return
。
但是,这种strings.ToUpper(i.(string))
语法是什么意思?我尝试搜索,但没有发现特别有用的东西。
答案 0 :(得分:3)
i.(string)
强制转换(或至少尝试)i
(类型interface{}
)以键入string
。我说尝试是因为说i
是int
,这会引起恐慌。如果这听起来不太好,则可以将语法更改为
x, ok := i.(string)
在这种情况下,如果i
不是string
,则ok
将是false
,并且代码将不会崩溃。
答案 1 :(得分:1)
i.(string)
意味着将i
(interface{}
类型)转换为string
类型。