Junior — Middle
Jakie działania są dozwolone podczas pracy z slice'em w Go, jeśli nie został on jawnie zainicjalizowany?
sobes.tech AI
Odpowiedź od AI
W Go, jeśli slice nie został jawnie zainicjalizowany (czyli ma wartość nil), można wykonać następujące działania:
- Sprawdzić, czy jest
nil(np.if slice == nil), co jest przydatne do określenia, czy slice został zainicjalizowany. - Uzyskać długość i pojemność za pomocą
len(slice)icap(slice). Dlanil-slice długość i pojemność są równe 0. - Używać operatora
appenddo dodawania elementów.appendautomatycznie utworzy nowy slice z przydzieloną pamięcią, jeśli oryginalny slice jestnil.
Jednak nie można odwołać się do elementów slice po indeksie, jeśli jest nil lub pusty, ponieważ spowoduje to panic.
Przykład:
var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = append(s, 1) // teraz s jest zainicjalizowany i zawiera [1]