如何在界面上使用 strings.Contains

How to use strings.Contains on an interface

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

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

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

这里你的类型断言是错误的,你正试图从你界面上的一个键访问一个值,它还没有作为一个映射被访问,所以这不能工作,因为 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
}