Как преобразовать строку «ключ: значение» в реальную карту? - PullRequest
0 голосов
/ 27 сентября 2018

Возможно ли преобразовать строку, содержащую «ключ: значение ключ2: значение» в фактическую карту Голанга?

Пример:

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
}

Спасибо!

1 Ответ

0 голосов
/ 27 сентября 2018

Да, вы можете определенно проанализировать эту строку в карте указанного вами типа!

Взгляните на пакет "strings", в частности strings.SplitN(...).Рассмотрите эти примеры и подумайте, как вы можете объединить их вместе с итерацией, чтобы заполнить эту карту:

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",
// }

То есть вы можете разделить строку на пробелы (), чтобы получить каждый ключ /пара значений, то вы можете разделить на двоеточия (:), чтобы разбить каждую пару на свои части.Наконец, вам просто нужно добавить каждую пару на карту!

Обратите внимание, что когда вы вызываете strings.SplitN(...) с -1 в качестве последнего аргумента, он разбивает входную строку на столько подстрок, сколько присутствует:

kv1 := strings.SplitN(kvs[1], ":", -1) // Note the -1 here
// []string{
//   "key2",
//   "key",
//   "value",
// }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...