Sobes.tech
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) un cap(slice). nil šķēlei garums un ietilpība ir 0.
  • Izmantot operatoru append elementu pievienošanai. append automātiski izveidos jaunu šķēli ar piešķirtu atmiņu, ja sākotnējā šķēle ir nil.

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]