Junior — Middle
Կարող է ստանալ որոշակի տարրին հասցեն, որը պահվում է ասոցացյոնային աղյուսակում (Map):
sobes.tech AI
Պատասխան AI-ից
Go լեզվում հնարավոր չէ ուղղակի ստանալ կոնկրետ տարրի հասցեն, որը պահվում է map-ում: Դա կապված է այն բանի հետ, որ քարտայի տարրերը կարող են տեղաշարժվել հիշողության մեջ փոփոխությունների ժամանակ, և կոմպիլատորը թույլ չի տալիս վերցնել արժեքի հասցեն ինդեքսավորության միջոցով, որպեսզի խուսափել սխալներից:
Օրինակ, հետևյալ կոդը չի կ compile-վի:
m := map[string]int{"a": 1}
p := &m["a"] // սխալ՝ չի կարելի վերցնել m["a"] հասցեն
Եթե անհրաժեշտ է աշխատել արժեքի հասցեի հետ, կարող եք պահել ցուցիչներ կամ կառուցվածքներ map-ում և վերցնել նրանց հասցեն:
m := map[string]*int{"a": new(int)}
*m["a"] = 42
Կամ պատճենել արժեքը map-ից փոփոխական և վերցնել նրա հասցեն։