如何在界面上使用 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
}
我收到以下代码行的恐慌。 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
}