Errore Go: panic: slice bounds out of range (Slicing Superiore alla Capacità)
L'errore a runtime si manifesta quando l'operazione di sub-slicing 's[low:high]' specifica un valore 'high' superiore alla capacità (cap) della slice originale.
Categoria
Articoli tecnici organizzati per gruppo funzionale.
L'errore a runtime si manifesta quando l'operazione di sub-slicing 's[low:high]' specifica un valore 'high' superiore alla capacità (cap) della slice originale.
A differenza di linguaggi come Python, in Go non sono consentiti indici negativi per indicizzare o affettare slice o stringhe ('s[:-1]'); qualsiasi valore negativo solleva un panic immediato.
La funzione 'unsafe.Slice(ptr, len)' introdotta in Go 1.17 genera un panic a runtime se il puntatore raw è 'nil' e la lunghezza richiesta è strettamente maggiore di zero.
La funzione di recupero 'recover()' ha effetto solo se invocata direttamente all'interno di una funzione differita ('defer func() { r := recover() }()'); chiamarla in una normale istruzione restituisce costantemente 'nil' e non arresta la propagazione del panic.