Junior — Middle
Bu dilim ichidagi qaysi ma'lumotlar funksiyani chaqirishda bu dilim argument sifatida uzatiladi?
sobes.tech AI
AIdan javob
Go tilida, dilim — bu uchta maydonni o'z ichiga olgan tuzilma: massivga ko'rsatkich, uzunlik va sig'imi. Dilim funksiyaga uzatilganda, faqat bu tuzilma nusxa olinadi, butun ma'lumotlar massivi emas.
Ya'ni, funksiyani chaqirganda, dilim qiymat sifatida uzatiladi, lekin faqat meta-ma'lumotlar (ko'rsatkich, uzunlik, sig'im) nusxa olinadi, massiv elementlari emas. Bu shuni anglatadiki, funksiyada dilim asosiy massivga ishora qiladi va funksiyada elementlar o'zgartirilsa, tashqarida ham ko'rinadi.
Misol:
func modify(slice []int) {
slice[0] = 100 // birinchi elementni o'zgartirish
}
func main() {
s := []int{1, 2, 3}
modify(s)
fmt.Println(s) // [100 2 3] chiqaradi
}
Shuning uchun, dilim funksiyaga uzatilganda, faqat dilim tuzilmasining uchta maydoni nusxa olinadi, massiv ma'lumotlari esa umumiy qoladi.