小编典典

在golang中,有一种从地图中获取值切片的好方法吗?

go

如果我有地图m,有没有更好的方法来获取值v的一部分,则

package main
import (
  "fmt"
)

func main() {
    m := make(map[int]string)

    m[1] = "a"
    m[2] = "b"
    m[3] = "c"
    m[4] = "d"

    // Can this be done better?
    v := make([]string, len(m), len(m))
    idx := 0
    for  _, value := range m {
       v[idx] = value
       idx++
    }

    fmt.Println(v)
 }

有地图的内置功能吗?Go包中是否有函数,或者如果需要的话,这是最好的代码吗?


阅读 344

收藏
2020-07-02

共1个答案

小编典典

抱歉不行。没有内置的方法可以做到这一点。

附带说明一下,您可以在切片创建中省略容量参数:

v := make([]string, len(m))

这里的容量暗示与长度相同。

2020-07-02