回答

收藏

在 golang 中是否有一种从地图中获取值的好方法?

技术问答 技术问答 215 人阅读 | 0 人回复 | 2023-09-12

假如我有一张地图 m 有没有比这更好的方法来获取值 v 的一部分
! M6 U& V3 h' ^6 ], B
    package mainimport (  "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) }
    2 U$ W/ F. T# f5 }0 a' p, c( t) L( ^
地图有内置功能吗?Go 包中是否有函数,或者如果必须这样做,这是最好的代码吗?8 {) s* e4 ]4 b6 x! f
                                                                ( K# b) c) i7 P9 J0 {* Z5 T
    解决方案:                                                               
# A7 k# A1 x( q. u& Z" z. s                                                                对不起。没有内置的方法可以做到这一点。5 N- B5 j; Y5 g! y5 I6 v6 N5 D
作为旁注,您可以在切片创建中省略容量参数:
" D! X$ Q* q' q0 h9 E
    v := make([]string,len(m))
    ' ]+ a# u. Q: c7 g$ P
容量暗示与这里的长度相同。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则