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.