Junior — Middle
Proqramlaşdırma dilində dilimin ölçüsü kiçildikdə, mövcud yaddaş miqdarı və ya tutumu dəyişir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, dilim (slice) — bu massivə işarə edən göstərici, uzunluğu və tutumu olan bir quruluşdur.
Dilim uzunluğunu azaltmaq (məsələn, slice = slice[:newLength] istifadə etməklə), yalnız uzunluq dəyişir — oxuma və yazma üçün mövcud olan elementlərin sayı. Tutum və ayrılmış yaddaş dəyişmir, çünki dilim hələ də eyni massivə istinad edir.
Əgər tutumu azaltmaq və yaddaşı sərbəst buraxmaq istəyirsinizsə, yeni dilim yaratmalı və ona lazım olan elementləri köçürməlisiniz, məsələn:
oldSlice := []int{1, 2, 3, 4, 5}
newSlice := make([]int, 3)
copy(newSlice, oldSlice[:3])
Beləliklə, dilim uzunluğunu azaltmaq tutumu və ayrılmış yaddaşı dəyişmir, ona görə yaddaş avtomatik sərbəst buraxılmır.