Junior — Middle
Kādi darbi ir atļauti, strādājot ar sēklu Go valodā, ja tas nav tieši inicializēts?
sobes.tech AI
Atbilde no AI
Go valodā, ja šķēle (slice) nav tieši inicializēta (t.i., tai ir nil vērtība), tad ar to var veikt šādas darbības:
- Pārbaudīt, vai tā ir
nil(piemēram,if slice == nil), kas ir noderīgi, lai noteiktu, vai šķēle ir inicializēta. - Iegūt tās garumu un ietilpību, izmantojot
len(slice)uncap(slice).nilšķēlei garums un ietilpība ir 0. - Izmantot operatoru
appendelementu pievienošanai.appendautomātiski izveidos jaunu šķēli ar piešķirtu atmiņu, ja sākotnējā šķēle irnil.
Tomēr nevar piekļūt šķēles elementiem pēc indeksa, ja tā ir nil vai tukša, jo tas izraisīs paniku.
Piemērs:
var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = append(s, 1) // tagad s ir inicializēta un satur [1]