Eseguire una type assertion secca 'val := i.(string)' quando il tipo sottostante non corrisponde genera panic; si risolve utilizzando la forma a due valori sicura 'val, ok := i.(string)'.
PANIC_TYPE_ASSERTION
→
La funzione 'make([]T, len, cap)' richiede che la capacità sia maggiore o uguale alla lunghezza; passare 'len > cap' genera un panic all'allocazione.
PANIC_MAKE_LEN_GT_CAP
→
Il package 'reflect' genera panic a runtime quando si invocano metodi come .Field(), .Type() o .Interface() su un 'reflect.Value{}' nullo o non inizializzato.
PANIC_REFLECT_ZERO
→
Viene invocata una variabile di tipo funzione ('var fn func()') alla quale non è stata ancora assegnata una closure o funzione concreta ('fn()'), risultando nel valore nullo 'nil'.
PANIC_NIL_FUNC_CALL
→
Il runtime di Go genera panic immediato quando si tenta di accedere a un elemento di una slice o array specificando un indice maggiore o uguale alla lunghezza (len) corrente.
PANIC_INDEX_RANGE
→
Eseguire una divisione intera ('a / b') o operazione modulo ('a % b') con divisore pari a zero solleva un panic fatale a runtime; per prevenire il crash occorre verificare 'if b != 0'.
PANIC_INT_DIV_ZERO
→
È il panic più frequente in Go: si verifica quando si tenta di accedere a un campo, invocare un metodo o leggere la memoria attraverso un puntatore che vale 'nil'; si previene verificando 'if ptr != nil'.
PANIC_NIL_POINTER
→
Tentare di inviare un valore attraverso un canale precedentemente chiuso con 'close(ch)' provoca un panic immediato del runtime; per convenzione in Go solo il mittente deve chiudere il canale.
PANIC_SEND_CLOSED_CHAN
→