Elemente aus Strukturarrays in Schleifen in Go entfernen
Problem:
Beim Entfernen von Elementen aus einem Array von Strukturen innerhalb einer Schleife kann der Fehler „Außerhalb des Bereichs“ auftreten auftreten.
Lösung:
Um Elemente per Schlüssel aus einem Array von Strukturen zu entfernen, wird empfohlen, einen der folgenden Slicing-Tricks zu verwenden:
a = append(a[:i], a[i+1:]...)
oder
a = a[:i+copy(a[i:], a[i+1:])]
Wichtiger Hinweis:
Wenn Beim Löschen von Elementen aus dem Slice, das durchlaufen wird, ist es wichtig, eine Abwärtsschleife zu verwenden, um das Überspringen von Elementen zu vermeiden.
Geänderter Code:
// Your original loop with the issue: // for i, application := range config.Applications { // if i == 1 { // config.Applications = _removeApplication(i, config.Applications) // } // } // Corrected code using downward loop: for i := len(config.Applications) - 1; i >= 0; i-- { application := config.Applications[i] // Condition to decide if current element has to be deleted: if haveToDelete { config.Applications = append(config.Applications[:i], config.Applications[i+1:]...) } }
Das obige ist der detaillierte Inhalt vonWie vermeide ich „Out of Range'-Fehler beim Entfernen von Elementen aus Go Struct-Arrays in Schleifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!