duanan1228 2018-09-27 19:45
浏览 178

如何在实际映射中转换字符串“ key:value”?

Is it possible to transform a string containing "key:value key2:value" in an actual Golang map?

Example:

package main

type Test struct{
  options map[string]interface{}
}

func main() {
   string := "key:value key2:key:value"
   var test Test
   /// Do something to parse string into test.Options
}

Thanks!

  • 写回答

1条回答 默认 最新

  • dqc42632 2018-09-27 20:16
    关注

    Yes, you can definitely parse that string into a map of the type you specify!

    Take a look at the "strings" package, in particular strings.SplitN(...). Consider these examples and think about how you can combine them, along with iteration, to populate that map:

    str := "key:value key2:key:value"
    
    kvs := strings.SplitN(str, " ", -1)
    // []string{
    //  "key:value",
    //  "key2:key:value",
    // }
    
    kv1 := strings.SplitN(kvs[1], ":", 2)
    // []string{
    //   "key2",
    //   "key:value",
    // }
    

    That is, you can split the string by spaces () to get each key/value pair, then you can split by colons (:) to split each pair into their own parts. Finally, you just need to add each pair to the map!

    Notice that when you call strings.SplitN(...) with -1 as the final argument it will split the input string into as many substrings as are present:

    kv1 := strings.SplitN(kvs[1], ":", -1) // Note the -1 here
    // []string{
    //   "key2",
    //   "key",
    //   "value",
    // }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来