代码之家  ›  专栏  ›  技术社区  ›  Erhan Bagdemir

从Go中的地图条目创建平面阵列

  •  4
  • Erhan Bagdemir  · 技术社区  · 7 年前

    从映射的键和值创建数组的最短(惯用)方法是什么,而不需要在时间复杂度上做太多妥协?

    例如,从以下地图:

    map[string]string { "1":"a", "2":"b" }
    

    我需要创建以下数组:

    []string{"1","a", "2","b"}
    

    我可以在Scala中通过以下方式实现这一点:

    val myMap = Map("1" -> "a", "2" -> "b")
    myMap.keySet ++ myMap.values
    

    非常感谢。

    1 回复  |  直到 2 年前
        1
  •  19
  •   eugenioy    7 年前

    最简单的方法是迭代映射,因为在Go中,语法将允许直接访问键和值,并将它们转储到数组中。

    m := map[string]string { "1":"a", "2":"b" }
    arr := []string{}
    for k, v := range m { 
       arr = append(arr, k, v)
    }
    

    https://blog.golang.org/go-maps-in-action

    因此,如果您希望生成的数组具有特定的顺序,则应首先转储键和顺序(如同一博客条目中所示)。

    操场(不含分拣部分):

    https://play.golang.org/p/mCe6eEy25A