Sobes.tech
Junior — Middle

Kas notiek, ja izveidojat sagriezienu ar nulles vērtību un kādas operācijas ar to ir atļautas?

sobes.tech AI

Atbilde no AI

Go valodā, nulle vērtības sēne ir nil sēne. Tā nenorāda uz nevienu masīvu un tai ir garuma un ietilpības vienāda ar nulli.

Atļautās operācijas ar tādu sēni:

  • Garuma un ietilpības iegūšana (len(slice) == 0, cap(slice) == 0)
  • Iterācija pār sēni (cikls vienkārši netiks izpildīts)
  • Elementu pievienošana ar append, kas izveidos jaunu sēni ar piešķirtu atmiņu

Piemērs:

var s []int // nil sēne
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // tagad s nav nil, satur vienu elementu

Nav iespējams piekļūt elementiem pēc indeksa, jo sēne ir tukša un tas izraisīs paniku.