Senior
Масив ва харита дар куҷо ҷойгир мешаванд — дар хишт ё дар стек?
sobes.tech AI
Ҷавоб аз AI
Дар Го, массивҳо одатан дар stack ҷойгир мешаванд, агар андозаи онҳо дар вақти компиляция маълум бошад ва онҳо хеле калон набошанд. Ин бо он вобаста аст, ки массивҳо арзишҳои бо андозаи доимӣ мебошанд. Аммо, агар массив ҳамчун ишора гузаронида шавад ё дар структурае истифода шавад, ки дар heap тақсим шудааст, пас массив низ дар heap хоҳад буд.
Map дар Го як навъи истинодӣ аст, ки дар дохили он тавассути ишора ба структураи додаҳо дар heap иҷро мешавад. Аз ин рӯ, map ҳамеша дар heap ҷойгир аст, ҳатто агар тағйирёбандаи map дар маҳал эълон шуда бошад.
Масал:
функсия намуна() {
var arr [10]int // массив дар stack
m := make(map[int]int) // map дар heap
_ = arr
_ = m
}