ProblemWie in golang
Ich habe Array von Strukturen Element struct Array in Schleife entfernen:
type Config struct {
Applications []Application
}
Hinweis: Config - ist ein struct für json.Decode.
In Schleife habe ich einige Bedingung und Element Löschung per Schlüssel.
for i, application := range config.Applications {
if i == 1 {
config.Applications = _removeApplication(i, config.Applications)
}
}
func _removeApplication(i int, list []Application) []Application {
if i < len(list)-1 {
list = append(list[:i], list[i+1:]...)
} else {
log.Print(list[i].Name)
list = list[:i]
}
return list
}
Aber ich habe immer "out of range" Fehler. Was ist der beste Weg, Element für Schlüssel aus einem Array von Strukturen zu löschen?
Was das ist ... in dem Zufügen-Befehl für? – Michael
@Michael Das '...' sagt, dass Sie eine Scheibe haben, die Sie übergeben möchten, um den Wert des _varijadic_ Parameters zu sein. ['append()'] (https://golang.org/pkg/builtin/#append) hat einen variadischen Parameter, der normalerweise durch _enumerating_ die Elemente aufgerufen wird, aber in diesem Fall nennen wir ihn _having_ die Elemente in einem Slice und _passing_ dieses Slice, und wir wollen, dass die Elemente des Slices die Werte des Variadic-Parameters sind (und wir wollen nicht, dass das Slice selbst ein einzelnes Element für den Variadic-Parameter ist). – icza