Sobes.tech
Junior — Middle

Bu dilim içindəki hansı məlumatlar bu dilim arqumenti kimi funksiyanı çağırarkən ötürülür?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilimində, dilim üç sahədən ibarət olan bir quruluşdur: massivə göstərici, uzunluq və tutum. Bir dilim funksiyaya ötürüldükdə, yalnız bu quruluş kopyalanır, bütün məlumat massivləri deyil.

Yəni, funksiyanı çağırarkən, dilim dəyər kimi ötürülür, amma yalnız meta məlumatlar (göstərici, uzunluq, tutum) kopyalanır, massiv elementləri deyil. Bu, funksiyada dilimin eyni əsas massivə işarə etdiyini və funksiyada elementlərdəki dəyişikliklərin xaricdə görünəcəyini göstərir.

Nümunə:

func modify(slice []int) {
    slice[0] = 100 // ilk elementi dəyişir
}

func main() {
    s := []int{1, 2, 3}
    modify(s)
    fmt.Println(s) // [100 2 3] göstərəcək
}

Buna görə, dilim funksiyaya ötürülərkən, yalnız dilim quruluşunun üç sahəsi kopyalanır, massiv məlumatları isə ümumi qalır.