ProblemJak usunąć element tablicy struct w pętli w golang
Mam tablicę kodowanym:
type Config struct {
Applications []Application
}
Uwaga: config - to struktura dla json.Decode.
config = new(Config)
_ = decoder.Decode(&config)
W pętli mam pewne usunięcie warunku i elementu za pomocą klucza.
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
}
Ale zawsze mam błąd "poza zasięgiem". Jaki jest najlepszy sposób na usunięcie elementu za pomocą klucza z tablicy struktur?
... Co jest w poleceniu dopisywania do? – Michael
@Michael "..." mówi, że masz kawałek, który chcesz przekazać jako wartość parametru _variadic_. ['append()'] (https://golang.org/pkg/builtin/#append) ma parametr variadic, który jest zwykle wywoływany przez _enumerowanie_ elementów, ale w tym przypadku wywołujemy go przez _having_ elementy w plasterku i _passing_, który chcemy wyciąć, a my chcemy, aby elementy wycinka były wartościami parametru variadic (i nie chcemy, aby sam plasterek był pojedynczym elementem dla parametru variadic). – icza