您的程式碼遇到變數覆蓋問題,因為您透過將元素附加到同一後備數組來建立新切片(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