Junior — Middle
Co się dzieje, jeśli utworzysz slice z wartością zerową i jakie operacje są z nim dozwolone?
sobes.tech AI
Odpowiedź od AI
W Go, slice z wartością zerową to nil slice. Nie wskazuje na żaden tablica i ma długość i pojemność równą zero.
Dozwolone operacje na takim slice:
- Uzyskanie długości i pojemności (
len(slice) == 0,cap(slice) == 0) - Iteracja po slice (pętla po prostu się nie wykona)
- Dodawanie elementów za pomocą
append, co utworzy nowy slice z przydzieloną pamięcią
Przykład:
var s []int // nil slice
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = append(s, 1) // teraz s nie jest nil, zawiera jeden element
Nie można odwołać się do elementów po indeksie, ponieważ slice jest pusty i spowoduje to panic.