您的程式碼遇到變數覆蓋問題,因為您透過將元素附加到同一後備數組來建立新切片(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) }
以上是為什麼 Go 中向同一數組中的切片追加內容時會發生變數覆蓋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!