Sobes.tech
Junior — Middle

append yöntemi çağrıldığında ne olur ve neden yeni bir dilim döndürür?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, append metodu, dilim (slice) öğelerine yeni öğeler eklemek için kullanılır. append çağrıldığında şu işlemler gerçekleşir:

  1. Eğer dilimin kapasitesi (capacity) yeterliyse, yeni öğe mevcut diziye eklenir ve güncellenmiş diziyi gösteren bir dilim döndürülür.
  2. Kapasite yeterli değilse, kapasitesi artırılmış yeni bir dizi oluşturulur, eski öğeler kopyalanır ve ardından yeni öğe eklenir.

Bu yüzden, append yeni bir dilim döndürür çünkü:

  • Kapasite genişletilirse, yeni diziye işaret eden bir dilim döndürülür.
  • Kapasite yeterliyse, aynı diziye işaret eden ama uzunluğu artırılmış bir dilim döndürülür.

Her zaman append sonucunu tekrar değişkene atamak önemlidir, böylece güncellenmiş dilime referansı kaybetmezsiniz:

s := []int{1, 2, 3}
s = append(s, 4)  // s artık [1 2 3 4] öğelerine sahip bir dilimi gösteriyor

Bu şekilde, append içsel olarak temel diziyi değiştirebileceği için yeni bir dilim döndürür ve ona referansı güncellemek gerekir.