Sobes.tech
Senior

Kur bus išdėstyti masyvas ir žemėlapis — ant krūvos ar ant steko?

sobes.tech AI

Atsakymas iš AI

Go kalboje masyvai paprastai yra išdėstyti ant stovo, jei jų dydis yra žinomas kompiliacijos metu ir jie nėra per dideli. Tai susiję su tuo, kad masyvai yra fiksuoto dydžio reikšmės. Tačiau, jei masyvas perduodamas kaip rodyklė arba naudojamas struktūroje, kuri paskirstyta ant krūvos, tada ir masyvas bus ant krūvos.

Map'as Go kalboje yra nuorodinis tipas, įgyvendintas viduje per rodyklę į duomenų struktūrą krūvoje. Todėl map'as visada yra ant krūvos, net jei kintamasis map yra deklaruotas vietoje.

Pavyzdys:

funkcija pavyzdys() {
    var arr [10]int // masyvas ant stovo
    m := make(map[int]int) // map'as ant krūvos
    _ = arr
    _ = m
}