gpt4 book ai didi

arrays - 在 GO 语言中删除和添加元素到数组

转载 作者:IT老高 更新时间:2023-10-28 13:04:43 33 4
gpt4 key购买 nike

我有 2 个数组声明为:var input []stringvar output []string

输入数组最初填充了一些 ID。输出数组为 NULL。

每次迭代后,我想从输入数组中删除一个随机元素并将其添加到输出数组。

最后,输出数组中的所有元素都将与输入数组相同(但排序(索引)不同)。

for index := 0; index < len(input); index++ {
if !visited[index] {
//do something
}
}
output[#iteration index] = input[current index]

当我尝试这样做时,我得到 array out of bounds 错误

最佳答案

对于 output 数组,您需要使用 append 或为其分配初始容量以匹配 input 的大小。

// before the loop
output := make([]string, len(input))

这将是我的建议,因为 append 会导致一堆不必要的重新分配,并且您已经知道需要什么容量,因为它基于 input

另一件事是:

output = append(output, input[index])

但就像我说的那样,根据我观察到的情况,追加的初始容量呈指数增长。如果您没有指定任何内容,这将是基数 2,这意味着您将在达到所需容量之前进行几次不需要的重新分配。

关于arrays - 在 GO 语言中删除和添加元素到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33834742/

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