Sobes.tech
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.