Sobes.tech
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:

  1. Ə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.
  2. Ə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.