Sobes.tech
Senior

// Sual 4. Ekranda nə göstərəcək 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 Süni İntellekt

AI-dan cavab

Bu kodda, [1, 2, 3, 4] elementləri ilə is adlı dilim yaradılır. Sonra, is[2:3] arqumenti ilə subis funksiyası çağırılır, yəni yalnız 3 elementini ehtiva edən dilim.

subis funksiyası, ötürülmüş dilimə 5 elementini əlavə etməklə yeni bir dilim qaytarır. Ancaq, subis çağırışının nəticəsi heç bir yerə saxlanmır, ona görə də orijinal is dilimi dəyişmir.

Proqramın çıxışı belə olacaq:

[1 2 3 4]

İzah:

  • Go'dakı dilimlər, bir arrayə işarə edən göstərici, uzunluq və tutum ehtiva edən strukturlardır.
  • is[2:3] yeni uzunluğu 1 olan dilim yaradır, arraydəki 3 elementinə işarə edir.
  • append mövcud tutum olsa, orijinal arrayi dəyişə bilər, amma nəticə təyin olunmayıbsa, dəyişikliklər saxlanmır.
  • Orijinal is dilimi dəyişməz qalır.