登录
首页 >  Golang >  Go问答

“i.(string)”的含义在Golang语法中是什么?

来源:stackoverflow

时间:2024-03-25 20:15:38 403浏览 收藏

Go 语言中的 `i.(string)` 语法用于强制将 `interface{}` 类型的变量 `i` 转换为 `string` 类型。它会尝试将 `i` 的值转换为 `string`,如果转换成功,则返回转换后的值;如果转换失败,则引发恐慌。

问题内容

我最近开始寻找函数式 go 示例,我发现了这个函数:

mapper := func (i interface{}) interface{} {
    return strings.ToUpper(i.(string))
}
Map(mapper, New(“milu”, “rantanplan”))
//[“MILU”, “RANTANPLAN”]

现在在这个函数中,您可以看到映射器的 return 值为: strings.toupper(i.(string))

但是,这个 i.(string) 语法是什么意思?我尝试搜索,但没有发现任何特别有用的内容。


解决方案


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

x, ok := i.(string)

在这种情况下,如果 i 不是 string,则 ok 将是 false 并且代码不会出现恐慌。

i.(string) 表示转换 i(interface{} 型)至string 类型。

终于介绍完啦!小伙伴们,这篇关于《“i.(string)”的含义在Golang语法中是什么?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>