Junior — Middle
Dasturlash tilida slice qanday funktsiyaga uzatiladi?
sobes.tech AI
AIdan javob
Go tilida, dilim (slice) funksiyaga qiymat orqali uzatiladi, ammo dilim bir massivga ishora qiluvchi ko'rsatkich, uzunligi va sig'imi bilan birga bo'ladi. Bu shuni anglatadiki, funksiyaga dilim uzatilganda, dilimning tuzilishi nusxalanadi, lekin unga ishora qiladigan massivning ma'lumotlari nusxalanmaydi.
Shuning uchun, funksiyada dilim elementlarida o'zgarishlar asl massivga ta'sir qiladi, lekin dilimning o'zi (masalan, yangi dilim bilan tayinlash) tashqi dilimga ta'sir qilmaydi.
Misol:
package main
import "fmt"
func modifySlice(s []int) {
s[0] = 100 // asl massiv elementini o'zgartiradi
s = append(s, 200) // lokal dilimni o'zgartiradi, tashqi o'zgarmaydi
}
func main() {
s := []int{1, 2, 3}
modifySlice(s)
fmt.Println(s) // Chiqishi: [100 2 3]
}
Shu tarzda, dilim qiymat orqali uzatiladi, ammo ichki ko'rsatkich yordamida, elementlardagi o'zgarishlar funksiyadan tashqarida ham ko'rinadi.