Sobes.tech
Junior — Middle

Ի՞նչ գործողություններ կարելի է կատարել դեռ չինիցիալիզացված Map տիպի փոփոխականի հետ։

sobes.tech AI

Պատասխան AI-ից

Go լեզվում, map տիպի փոփոխականը նախնական արժեք է ստանում nil, եթե այն չի սկսվել:

nil map-ով թույլատրվում են հետևյալ գործողությունները:

  • Արժեքի ընթերցում ըստ բանալիի — կվերադարձնի արժեքի զրո արժեքը և նշան, որ բանալին չկա:
  • Ստուգել բանալիի առկայությունը value, ok := map[key] օգտագործելով:

Արգելված գործողություններ:

  • Գրառումը (արժեքի նշանակումը բանալիին) կհանգեցնի panic-ի:
  • Ֆունկցիաների կանչը, որոնք փոփոխում են քարտեզը (օրինակ, delete) nil քարտեզի վրա անվտանգ է և չի առաջացնի panic:

Օրինակ:

var m map[string]int // m == nil

v, ok := m["key"] // ok == false, v == 0

// m["key"] = 10 // panic: նշանակում `nil` քարտեզին

delete(m, "key") // անվտանգ, ոչինչ չի անում

Քարտեզը գրառման համար օգտագործելու համար այն պետք է նախապես սկսվի, օրինակ, make-ով:

m = make(map[string]int)
m["key"] = 10 // հիմա աշխատում է