Gibt es eine Version der removeElement Funktion in Go für das Vektor-Paket wie Java in seiner Vector-Klasse hat?

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

  •  05-07-2019
  •  | 
  •  

Frage

Ich bin Portierung Go Sprache einige Java-Code in Google vorbei und ich alle Code-Umwandlungs außer ich nach einem erstaunlich glatt Port auf nur einen Teil stecke. Mein Go Code wie folgt aussieht, und der Abschnitt über die ich spreche auf Kommentar gesetzt ist:

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;
            }
        }
    }
}

Wenn es keine Version verfügbar ist, was ich glaube, es ist nicht ... Wer weiß, wie ich über die Implementierung von so etwas auf eigene Faust gehen würde?

War es hilfreich?

Lösung

Wie wäre es Vector.Delete (i)?

Andere Tipps

Im Moment geht nicht allgemeine Gleichheitsoperatoren unterstützen. So werden Sie etwas, das iteriert über den Vektor schreiben müssen und die richtigen entfernt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top