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

Go 成对迭代字符串数组以创建映射,go,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 您可以

我有一个字符串数组,其长度总是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

您可以编写自己的函数,类似于:

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))
}

这个怎么样:@vahdet是的!措辞是我的问题,我不会发现这个问题。啊,很好,所以迭代类似于在C中完成的方式。你会发现,在这方面,go通常与C类似。主要区别在于语法更现代,标准库更好
[key1 val1 key2 val2]
map[key1:val1 key2:val2]