Junior — Middle
Mapте сакталган белгилүү бир элементтин дарегин алууга болобу?
sobes.tech AI
AIден жооп
Go тилинде, map ичинде сакталган конкреттүү элементтин дарегин түздөн-түз алуу мүмкүн эмес. Бул, карта элементтери өзгөрүүлөр учурунда эс тутумда жылышы мүмкүн экендигинен жана компилятор каталардан сактануу үчүн индекстеүү аркылуу маанинин дарегин алууга уруксат бербейт.
Мисалы, төмөнкү код компиляцияланбайт:
m := map[string]int{"a": 1}
p := &m["a"] // компиляция ката: m["a"] дарегин алууга болбойт
Эгер маанинин дареги менен иштөө керек болсо, анда көрсөткүчтөрдү же түзүмдөрдү map ичинде сактап, алардын дарегин алса болот:
m := map[string]*int{"a": new(int)}
*m["a"] = 42
Же mapтен маанини көчүрүп, анын дарегин алса болот.