Sobes.tech
Junior — Middle

Koja je razlika između mape sa nul vrednošću i seka koji sadrži nul vrednost?

sobes.tech АИ

Одговор од АИ

U Go jeziku, mapa (map) sa nul vrednošću je mapa koja nije inicijalizovana i jednaka je nil. Pokušaj upisa u takvu mapu će izazvati paniku.

Slice sa nul vrednošću je nil-slice, koja ne pokazuje na niz i ima dužinu i kapacitet 0. Može se sigurno koristiti, na primer, za čitanje ili prosleđivanje funkcijama.

Ključne razlike:

  • map == nil znači da mapa nije inicijalizovana i ne može primati elemente.
  • slice == nil znači da je slice prazan i ne pokazuje na niz, ali se može koristiti za čitanje (biće prazan) i prosleđivanje.

Primer:

var m map[string]int // m == nil
// m["key"] = 1 // panika: dodela u nil mapu

var s []int // s == nil
fmt.Println(len(s)) // 0
s = append(s, 1) // sada je slice inicijalizovan

Dakle, nil-mapa nije pogodna za zapis, a nil-slice je siguran za čitanje i proširenje.