¿Existe una versión de la función removeElement en Go para el paquete vectorial que Java tiene en su clase Vector?

StackOverflow https://stackoverflow.com/questions/1802102

  •  05-07-2019
  •  | 
  •  

Pregunta

Estoy transfiriendo algo de código Java al lenguaje Go de Google y estoy convirtiendo todo el código, excepto que estoy bloqueado en una parte después de un puerto increíblemente suave. El código de Mi Go tiene este aspecto y la sección de la que estoy hablando está comentada:

func main() {
    var puzzleHistory * vector.Vector;
    puzzleHistory = vector.New(0);
    var puzzle PegPuzzle;
    puzzle.InitPegPuzzle(3,2);
    puzzleHistory.Push(puzzle);

    var copyPuzzle PegPuzzle;
    var currentPuzzle PegPuzzle;

    currentPuzzle = puzzleHistory.At(0).(PegPuzzle);
    isDone := false;
    for !isDone {
        currentPuzzle = puzzleHistory.At(0).(PegPuzzle);
        currentPuzzle.findAllValidMoves();

        for i := 0; i < currentPuzzle.validMoves.Len(); i++ {
            copyPuzzle.NewPegPuzzle(currentPuzzle.holes, currentPuzzle.movesAlreadyDone);
            copyPuzzle.doMove(currentPuzzle.validMoves.At(i).(Move));
            // There is no function in Go's Vector that will remove an element like Java's Vector
            //puzzleHistory.removeElement(currentPuzzle);
            copyPuzzle.findAllValidMoves();
            if copyPuzzle.validMoves.Len() != 0 {
                puzzleHistory.Push(copyPuzzle);
            }
            if copyPuzzle.isSolutionPuzzle() {
                fmt.Printf("Puzzle Solved");
                copyPuzzle.show();
                isDone = true;
            }
        }
    }
}

Si no hay una versión disponible, que creo que no hay ... ¿Alguien sabe cómo me gustaría implementar tal cosa por mi cuenta?

¿Fue útil?

Solución

¿Qué hay de Vector.Delete (i)?

Otros consejos

En este momento, Go no admite operadores de igualdad genéricos. Así que tendrás que escribir algo que itere sobre el vector y elimine el correcto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top