Sobes.tech
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тен маанини көчүрүп, анын дарегин алса болот.