Sobes.tech
Senior

// Soru 4. Ekranda ne gösterilecek package main import "fmt" 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, [1, 2, 3, 4] öğeleriyle is adlı bir dilim oluşturulur. Daha sonra, sadece 3 öğesini içeren is[2:3] dilimiyle subis fonksiyonu çağrılır.

subis fonksiyonu, geçirilen dilime 5 öğesini ekleyerek yeni bir dilim döndürür. Ancak, subis çağrısının sonucu hiçbir yere kaydedilmediği için, orijinal is dilimi değişmez.

Programın çıktısı şu olacaktır:

[1 2 3 4]

Açıklama:

  • Go'daki dilimler, bir diziye işaretçi, uzunluk ve kapasite içeren yapılar olarak tanımlanır.
  • is[2:3] yeni bir dilim oluşturur, uzunluğu 1 olup, dizideki 3 öğesine işaret eder.
  • append, boş kapasite varsa orijinal diziyi değiştirebilir, ancak sonuç atanmamışsa, değişiklikler kaydedilmez.
  • Orijinal is dilimi değişmeden kalır.