ProblemaCome rimuovere elemento dell'array struct in loop in golang
ho array di struct:
type Config struct {
Applications []Application
}
Nota: Config - è una struct per json.Decode.
config = new(Config)
_ = decoder.Decode(&config)
In Anello Ho alcune condizioni e elemento eliminazione dalla chiave.
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
}
Ma sempre ho errore "fuori intervallo". Qual è il modo migliore per cancellare elemento per chiave da una matrice di strutture?
Qual è il ... nel comando append per? – Michael
@Michael Il '...' dice che hai una sezione che vuoi passare per essere il valore del parametro _variadic_. ['append()'] (https://golang.org/pkg/builtin/#append) ha un parametro variadic che normalmente viene chiamato _enumerating_ gli elementi, ma in questo caso lo chiamiamo _having_ gli elementi in una slice e _passando_ quella slice, e vogliamo che gli elementi della slice siano i valori del parametro variadic (e non vogliamo che la slice stessa sia un singolo elemento per il parametro variadic). – icza