gpt4 book ai didi

arrays - 修改作为映射值的数组

转载 作者:IT王子 更新时间:2023-10-29 01:03:27 25 4
gpt4 key购买 nike

如果我有一个值为数组的 map ,我该如何修改数组中的一个元素?

像这样:

m := make(map[string][4]int)
m["a"]=[...]int{0,1,2,3}
m["a"][2]=10

它不会编译:prog.go:8: cannot assign to m["a"][2]

我可以将变量复制到一个数组,修改它然后将它复制回 map ,但它似乎很慢,特别是对于大型数组。

// what I like to avoid.
m := make(map[string][4]int)
m["a"] = [...]int{0, 1, 2, 3}
b := m["a"]
b[2] = 10
m["a"] = b

有什么想法吗?

最佳答案

使用指针。例如,

package main

import "fmt"

func main() {
m := make(map[string]*[4]int)
m["a"] = &[...]int{0, 1, 2, 3}
fmt.Println(*m["a"])
m["a"][2] = 10
fmt.Println(*m["a"])
}

输出:

[0 1 2 3]
[0 1 10 3]

关于arrays - 修改作为映射值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20827771/

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