Junior — Middle
Как се осъществява достъп до стойностите в речник, който все още не е бил създаден предварително?
sobes.tech AI
Отговор от AI
В езика Go, ако речникът (map) все още не е създаден (т.е. е nil), опитът за достъп до елементи по ключ няма да предизвика паника, а просто ще върне нулевата стойност на типа на елементите.
Например:
var m map[string]int // m == nil
fmt.Println(m["key"]) // Ще изведе 0, няма да предизвика грешка
Обаче, опитът да се присвои стойност в nil речник ще доведе до паника:
m["key"] = 10 // паника: присвояване на елемент в nil речник
Затова преди да запишете в речник, трябва да се уверите, че е инициализиран, например:
m = make(map[string]int)
m["key"] = 10
По този начин, при четене може да се достъпва nil речник без грешки, но при писане е необходимо предварително да се създаде речникът.