gpt4 book ai didi

dictionary - 在 Go 中如何从 map 中获取一个值?

转载 作者:IT老高 更新时间:2023-10-28 12:58:02 28 4
gpt4 key购买 nike

如果我有一张 map 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)
}

map 有内置功能吗? Go 包中是否有函数,或者这是唯一的方法?

最佳答案

作为 jimt 帖子的补充:

您也可以使用 append 而不是显式地将值分配给它们的索引:

m := make(map[int]string)

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

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

for _, value := range m {
v = append(v, value)
}

请注意,长度为零(尚无元素),但容量(分配的空间)使用 m 的元素数进行初始化。这样做是为了 append 不需要在每次 slice v 的容量用完时分配内存。

你也可以make没有容量值的 slice ,让append为自己分配内存。

关于dictionary - 在 Go 中如何从 map 中获取一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422578/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com