Junior — Middle
Ce acțiuni sunt permise atunci când lucrați cu un slice în Go dacă acesta nu a fost inițializat explicit?
sobes.tech AI
Răspuns de la AI
În Go, dacă un slice nu a fost inițializat explicit (adică are valoarea nil), se pot efectua următoarele acțiuni:
- Verificarea dacă este
nil(de exemplu,if slice == nil), ceea ce este util pentru a determina dacă slice-ul a fost inițializat. - Obținerea lungimii și capacității folosind
len(slice)șicap(slice). Pentru un slicenil, lungimea și capacitatea sunt 0. - Utilizarea operatorului
appendpentru a adăuga elemente.appendva crea automat un nou slice cu memorie alocată dacă slice-ul original estenil.
Totuși, nu se poate accesa elementele slice-ului după index dacă acesta este nil sau gol, deoarece va provoca o panică.
Exemplu:
var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = append(s, 1) // acum s este inițializat și conține [1]