Sobes.tech
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)