Junior — Middle
Lehetséges-e adatolvasási művelet végrehajtása egy olyan szeletből, amelyet előzetesen nem inicializáltak?
sobes.tech MI
Válasz az MI-től
Go-ban a szeletek (slices) olyan szerkezetek, amelyek egy tömbre mutató mutatót, hosszúságot és kapacitást tartalmaznak. Ha egy szelet nincs inicializálva (azaz nil), akkor az olvasási kísérlet pánikot okoz.
Például:
var s []int // nil-szelet
fmt.Println(s[0]) // pánik: futási hiba: index kívül esik a tartományon
Biztonságos olvasáshoz a szeletet inicializálni kell, például make-el vagy meglévő tömb hozzárendelésével:
s := make([]int, 3)
fmt.Println(s[0]) // 0, biztonságos
Ezért nem lehet olvasni egy nem inicializált szeletből — ez futási hibát fog eredményezni.