代码之家  ›  专栏  ›  技术社区  ›  Daksh M.

在golang语法中,“i.(string)”实际上是什么意思[[副本]

  •  0
  • Daksh M.  · 技术社区  · 7 年前

    我最近开始寻找函数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) 语法意义?我试着搜索,但没有找到任何特别有用的东西。

    2 回复  |  直到 7 年前
        1
  •  9
  •   poy    7 年前

    i.(string) 强制转换(或至少尝试) i interface{} )打字 string int 相反,这会引起恐慌。如果这听起来不太好,那么可以将语法更改为

    x, ok := i.(string)
    

    在这种情况下,如果 那么 ok false 代码不会惊慌。

        2
  •  2
  •   nightfury1204    7 年前

    i.(string) i ( interface{} 类型)至 string 类型。