您的代码遇到变量覆盖问题,因为您通过将元素附加到同一后备数组来创建新切片(pathA 和 pathB) (路线)在循环内。
切片的背景Go:
您的代码有问题:
在您的代码中,您正在使用附加函数创建两个新切片,pathA 和 pathB:
pathA := append(route, nextA) pathB := append(route, nextB)
发生的情况如下:
解决方案:
要避免这种覆盖,您需要确保 pathA 和 pathB 具有唯一的后备数组。您可以通过使用 make 和 copy 手动为其中一个创建一个新切片来实现此目的:
newRoute := make([]int, len(route), (cap(route) 1)*2) copy(newRoute, route) if i % 2 == 0 { pathA := append(newRoute, nextA) } else { pathB := append(newRoute, nextB) }
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3