Sobes.tech
Junior — Middle

Dasturda obyektlar uchun xotira ajratish qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

Go tilida ob'ektlar uchun xotira ajratish avtomatik ravishda ichki axlat to'plovchi yordamida amalga oshiriladi.

Ob'ektni yaratganingizda, masalan, new yoki strukturali literal yordamida, xotira kompilyator tahlili (escape analysis)ga qarab, yirik yoki stekda ajratiladi. Agar ob'ekt funksiya tashqarisiga chiqsa, uning hayot aylanishini saqlash uchun yirikda joylashadi.

Ob'ekt ajratish misoli:

type Person struct {
    Name string
    Age  int
}

func main() {
    p := &Person{Name: "Иван", Age: 30} // xotira avtomatik ravishda ajratiladi
    fmt.Println(p.Name)
}

Go xotirani avtomatik boshqaradi: foydalanilmayotgan ob'ektlarni bo'shatadi, bu esa xotira oqib ketish xavfini kamaytiradi va rivojlanishni soddalashtiradi.