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əki3elementinə işarə edir.appendmövcud tutum olsa, orijinal arrayi dəyişə bilər, amma nəticə təyin olunmayıbsa, dəyişikliklər saxlanmır.- Orijinal
isdilimi dəyişməz qalır.