Junior — Middle
Ի՞նչ կլինի, երբ աշխատում եք Map տիպի օբյեկտով, եթե նախքան դրա օգտագործումը չեք կատարել այն make-ի միջոցով սկսում կամ անմիջապես հայտարարության ժամանակ արժեք չեք նշանակել։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, map տիպի օբյեկտը, որը հայտարարված է առանց սկզբնականացման (միջոց make կամ արժեք նշանակելու միջոցով), ունի nil արժեք։ Նման nil-map-ում տարր գրելու փորձը գործարկման ժամանակ կհանգեցնի փլուզման (runtime panic): Սակայն, nil-map-ից ընթերցումը անվտանգ է և պարզապես կվերադարձնի արժեքի զրոյական արժեքը:
Օրինակ՝
var m map[string]int // m == nil
// Ընթերցումը անվտանգ է՝
fmt.Println(m["key"]) // Տպում է 0
// Գրառումը կհանգեցնի փլուզման՝
m["key"] = 10 // panic: գրառում nil-մապում
Հետևաբար, նախքան map-ին գրանցում կատարելն օգտագործել, այն պարտադիր է սկզբնականացնել, օրինակ՝
m = make(map[string]int)