Junior — Middle
append metodunu çağıranda nə baş verir və niyə yeni dilim qaytarır?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, append metodu, dilimə (slice) elementlər əlavə etmək üçün istifadə olunur. append çağırıldıqda, aşağıdakı baş verir:
- Əgər dilimin (capacity) tutumu kifayət edərsə, yeni element sadəcə mövcud massivə əlavə olunur və yenilənmiş massivə işarə edən dilim qaytarılır.
- Əgər tutum kifayət etməzsə, artırılmış tutuma malik yeni massiv yaradılır, köhnə elementlər ona köçürülür və sonra yeni element əlavə olunur.
Bu səbəbdən, append yeni dilim qaytarır, çünki:
- Tutum genişləndirilərsə, yeni massivə işarə edən dilim qaytarılır.
- Tutum kifayət edərsə, eyni massivə işarə edən, lakin uzadılmış uzunluğa malik dilim qaytarılır.
Həmişə append nəticəsini yenidən dəyişənə təyin etmək vacibdir, beləliklə yenilənmiş dilimə istinad itirilməz:
s := []int{1, 2, 3}
s = append(s, 4) // s indi [1 2 3 4] elementlərinə malik dilimi göstərir
Bu şəkildə, append daxili olaraq əsas massivdə dəyişiklik edə bilər və ona istinadın yenilənməsi lazımdır.