Ihr Code stößt auf ein Problem beim Überschreiben von Variablen, weil Sie neue Slices (PfadA und PfadB) erstellen, indem Sie Elemente an dasselbe Backing-Array anhängen (Route) innerhalb einer Schleife.
Hintergrund zu Slices in Go:
Problem mit Ihrem Code:
In Ihrem Code erstellen Sie zwei neue Slices, PfadA und PfadB, mithilfe der Append-Funktion:
pathA := append(route, nextA) pathB := append(route, nextB)
Das passiert:
Lösung:
Um dieses Überschreiben zu vermeiden, müssen Sie sicherstellen, dass PfadA und PfadB eindeutige Backing-Arrays haben. Sie können dies erreichen, indem Sie manuell ein neues Slice für eines davon erstellen, indem Sie make und copy verwenden:
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) }
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3