成对迭代字符串数组以创建映射

时间:2019-02-11 11:08:49

标签: go

我有一个字符串数组,其长度始终是2的倍数。

我想用这个数组创建一个地图,这样

myarr = ["key1", "val1", "key2", "val2", ...]

成为其中的地图

mymap := mapify(myarr)
mymap['key1'] == "val1"
mymap['key2'] == "val2"

在Python中,我可以使用以下代码进行操作

mymap = {}
for x, y in zip(*[iter(myarr)]*2):
  mymap[x] = y

1 个答案:

答案 0 :(得分:1)

您可以编写自己的函数,诸如此类:

package main

import (
    "fmt"
)

var myarr = []string{"key1", "val1", "key2", "val2"}

func mapify(kv []string) map[string]string {
    mymap := make(map[string]string)

    for i := 0; i+1 <= len(kv); i = i + 2 {
        mymap[kv[i]] = kv[i+1]
    }

    return mymap
}

func main() {
    fmt.Println(myarr)
    fmt.Println(mapify(myarr))
}

输出

[key1 val1 key2 val2]
map[key1:val1 key2:val2]

Try it here