Seu código encontra um problema de substituição de variáveis porque você está criando novas fatias (caminhoA e caminhoB) anexando elementos à mesma matriz de apoio (rota) dentro de um loop.
Plano de fundo do Slices in Go:
Problema com seu Código:
Em seu código, você está criando duas novas fatias, pathA e pathB, usando a função de acréscimo:
pathA := append(route, nextA) pathB := append(route, nextB)
Aqui está o que acontece:
Solução:
Para evitar essa substituição, você precisa garantir que pathA e pathB tenham matrizes de apoio exclusivas. Você pode conseguir isso criando manualmente uma nova fatia para uma delas usando make e 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) }
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3