Sobes.tech
Middle+

ana paket "fmt" paketini içe aktar func subis(is []int) []int { return append(is, 5) } func main() { is := []int{1, 2, 3, 4} subis(is[2:3]) fmt.Println(is) }

sobes.tech yapay zeka

AI'dan gelen yanıt

Bu kodda şu olaylar olur:

is := []int{1, 2, 3, 4}
subis(is[2:3])
fmt.Println(is)

is[2:3] tek bir öğe içeren bir dilimdir: 3.

subis fonksiyonu, is []int dilimini alır ve append kullanarak orijinal dilime 5 sayısını ekleyerek yeni bir dilim döndürür.

Ancak, main fonksiyonunda subis çağrısının sonucu tekrar atanmıyor, bu yüzden orijinal dilim is değişmiyor.

Çıktı şu şekilde olur:

[1 2 3 4]

Bir atama yapmış olsaydık, örneğin:

is = subis(is[2:3])

is [3 5] dilimi olurdu.

Bu nedenle, mevcut kodda is değişmiyor çünkü append sonucu kaydedilmiyor.