Votre code rencontre un problème d'écrasement des variables car vous créez de nouvelles tranches (pathA et pathB) en ajoutant des éléments au même tableau de sauvegarde (itinéraire) dans une boucle.
Contexte sur les tranches dans Go :
Problème avec votre code :
Dans votre code, vous créez deux nouvelles tranches, pathA et pathB, en utilisant la fonction append :
pathA := append(route, nextA) pathB := append(route, nextB)
Voici ce qui se passe :
Solution :
Pour éviter cet écrasement, vous devez assurez-vous que pathA et pathB ont des tableaux de sauvegarde uniques. Vous pouvez y parvenir en créant manuellement une nouvelle tranche pour l'une d'entre elles en utilisant make et 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) }
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3