Да, вы можете определенно проанализировать эту строку в карте указанного вами типа!
Взгляните на пакет "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",
// }