Dak*_*ani 3 syntax functional-programming go
我最近开始寻找功能性的go示例,并发现了以下功能:
mapper := func (i interface{}) interface{} {
return strings.ToUpper(i.(string))
}
Map(mapper, New(“milu”, “rantanplan”))
//[“MILU”, “RANTANPLAN”]
Run Code Online (Sandbox Code Playgroud)
现在在此函数中,您可以看到returnmapper 的值是:
strings.ToUpper(i.(string))。
但是,这种i.(string)语法是什么意思?我尝试搜索,但没有发现任何特别有用的信息。
i.(string)将(或至少尝试)i(type interface{})强制转换为type string。我说尝试是因为说i是对的int,这会惊慌。如果这听起来不太好,则可以将语法更改为
x, ok := i.(string)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果i不是string,则代码ok为false,而代码不会慌乱。