如何使用字符串。包含在接口上

时间:2018-08-12 10:15:11

标签: go interface contains

我对以下代码行感到恐慌。 interface conversion: interface {} is []string, not string

我的界面是字符串映射。查找图形界面是否包含特定字符串的最佳方法是什么。

if strings.Contains(figure["figure1"].(string), "one"){
}

1 个答案:

答案 0 :(得分:2)

在这里,类型断言是错误的,您正在尝试从接口上的键访问一个值,该键尚未作为映射访问,因此无法使用interface{},这是不可行的可索引的。

您要做的是像这样将整个界面投射到map[string]string

stringMap, ok := interfaceArg.(map[string]string)
if !ok {
    return errors.New("cast failed")
}

if strings.Contains(stringMap["figure1"], "one") {
    // your code here
}