Senior
// 4-savol. ekraningizda nima chiqadi 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 AI
AIdan javob
Ushbu kodda [1, 2, 3, 4] elementlari bilan is nomli kesim yaratiladi. So'ng, is[2:3] argumenti bilan subis funksiyasi chaqiriladi, ya'ni faqat 3 elementini o'z ichiga olgan kesim.
subis funksiyasi, o'tkazilgan kesimga 5 elementini qo'shish orqali yangi kesim qaytaradi. Biroq, subis chaqiruvining natijasi hech qayerga saqlanmaydi, shuning uchun asl is kesimi o'zgarmaydi.
Dastur chiqishi quyidagicha bo'ladi:
[1 2 3 4]
Tushuntirish:
- Go'da kesimlar (slices) arrayga ishora qiluvchi ko'rsatkich, uzunlik va sig'imni o'z ichiga olgan tuzilmalardir.
is[2:3]yangi uzunligi 1 bo'lgan kesim yaratadi, u arraydagi3elementiga ishora qiladi.appendmavjud sig'im bo'lsa, original arrayni o'zgartirishi mumkin, ammo natija tayinlanmaganligi uchun o'zgarishlar saqlanmaydi.- Asl
iskesimi o'zgarmas qoladi.