golang语法中的“ i。(string)”实际上是什么意思?

时间:2018-12-02 06:26:18

标签: go syntax functional-programming

我最近开始寻找功能性的go示例,并发现了以下功能:

EventBus

现在在此函数中,如您所见,映射器的mapper := func (i interface{}) interface{} { return strings.ToUpper(i.(string)) } Map(mapper, New(“milu”, “rantanplan”)) //[“MILU”, “RANTANPLAN”] 值为: return

但是,这种strings.ToUpper(i.(string))语法是什么意思?我尝试搜索,但没有发现特别有用的东西。

2 个答案:

答案 0 :(得分:3)

i.(string)强制转换(或至少尝试)i(类型interface{})以键入string。我说尝试是因为说iint,这会引起恐慌。如果这听起来不太好,则可以将语法更改为

x, ok := i.(string)

在这种情况下,如果i不是string,则ok将是false,并且代码将不会崩溃。

答案 1 :(得分:1)

i.(string)意味着将iinterface{}类型)转换为string类型。