douzhigan1687 2018-08-12 10:15 采纳率: 0%
浏览 132
已采纳

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

I am receiving a panic on the following line of code. interface conversion: interface {} is []string, not string

My interface is a map of strings. What is the best method to find whether the figure interface contains a specific string.

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

1条回答 默认 最新

  • dongyue934001 2018-08-12 10:45
    关注

    Here your type assertion is wrong, you are trying to access a value from a key on your interface, which hasn't been accessed as a map, so this can't work as the interface{} isn't indexible.

    What you have to do instead is to cast your whole interface to a map[string]string like such

    stringMap, ok := interfaceArg.(map[string]string)
    if !ok {
        return errors.New("cast failed")
    }
    
    if strings.Contains(stringMap["figure1"], "one") {
        // your code here
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序