Sobes.tech
Junior — Middle

Programlama dilinde dilim boyutu küçültüldüğünde, kullanılabilir bellek miktarı veya kapasite değişiyor mu?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, dilim (slice) bir diziye işaretçi, uzunluk ve kapasite içeren bir yapıdır.

Dilim uzunluğunu azaltmak (örneğin, slice = slice[:newLength] kullanarak), sadece uzunluk değiştirilir — okunabilir ve yazılabilir öğelerin sayısı. Kapasite ve tahsis edilen bellek aynı kalır, çünkü dilim hala aynı diziye işaret eder.

Eğer kapasiteyi azaltmak ve belleği serbest bırakmak istiyorsanız, yeni bir dilim oluşturmalı ve gerekli öğeleri ona kopyalamalısınız, örneğin:

oldSlice := []int{1, 2, 3, 4, 5}
newSlice := make([]int, 3)
copy(newSlice, oldSlice[:3])

Bu şekilde, dilim uzunluğunu azaltmak kapasiteyi ve tahsis edilen belleği değiştirmez, bu nedenle bellek otomatik olarak serbest bırakılmaz.