Ваш код сталкивается с проблемой перезаписи переменных, поскольку вы создаете новые фрагменты (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