Sobes.tech
Junior — Middle

Ce consecințe apar atunci când se folosește metoda append pentru un slice declarat fără parametri inițiali?

sobes.tech AI

Răspuns de la AI

Dacă o secțiune în Go este declarată fără parametri inițiali, de exemplu var s []int, ea este inițial egală cu nil și nu indică către un array alocat. La utilizarea funcției append, Go va aloca automat un nou array și va adăuga elementele, returnând o secțiune nouă cu capacitatea necesară.

Aceasta înseamnă că append funcționează în mod sigur cu secțiuni nil, și puteți scrie:

var s []int // secțiune nil
s = append(s, 1, 2, 3) // acum s indică către un nou array cu elementele

Consecințe:

  • Nu este necesar să inițializați secțiunea înainte de a folosi append.
  • La primul apel de append, se alocă memorie.
  • Dacă secțiunea este nil, atunci len(s) == 0 și cap(s) == 0.

Prin urmare, utilizarea append cu secțiuni nil este o practică standard în Go, care simplifică lucrul cu colecții dinamice.