Sobes.tech
Junior — Middle

გაგზავნილი სიის ცვლილებები ამ პროფილში გლობალურად გამოჩნდება?

sobes.tech AI

პასუხი AI-სგან

Go ენაში, თუ გადმოგეცით სლაისი (slice) ფუნქციას და შეცვალეთ მისი ელემენტები, ეს ცვლილებები გამოჩნდება ფუნქციის გარეთ, რადგან სლაისი შეიცავს მაჩვენებელს მონაცემებზე მასივში.

თუმცა, თუ ფუნქციის შიგნით შეცვლით სლაის (მაგალითად, ახალი სლაის მიანიჭებთ), ეს არ იმოქმედებს გარეთ არსებულ სლაის.

მაგალითი:

func modifySlice(s []int) {
    s[0] = 100 // შეცვლის ორიგინალური სლაის ელემენტს
    s = append(s, 200) // შეცვლის ადგილობრივ ასლს, არ აისახება გარეთ
}

func main() {
    slice := []int{1, 2, 3}
    modifySlice(slice)
    fmt.Println(slice) // გამოიტანს [100 2 3]
}

ამიტომ, სლაის ელემენტების ცვლილებები გლობალურად აისახება, მაგრამ სლაის ცვლილება — არა.