Sobes.tech
Junior — Middle

Da li će promene unesene u poslati spisak biti prikazane globalno u ovom profilu?

sobes.tech АИ

Одговор од АИ

U Go jeziku, ako prosledite isečak (slice) funkciji i izmenite njegove elemente, te promene će biti vidljive van funkcije, jer isečak sadrži pokazivač na podatke u nizu.

Međutim, ako unutar funkcije izmenite sam isečak (na primer, dodeljujući mu novi isečak), to neće uticati na originalni isečak van funkcije.

Primer:

func modifySlice(s []int) {
    s[0] = 100 // menja element originalnog isečka
    s = append(s, 200) // menja lokalnu kopiju isečka, ne utiče na spoljašnji
}

func main() {
    slice := []int{1, 2, 3}
    modifySlice(slice)
    fmt.Println(slice) // Ispisaće [100 2 3]
}

Dakle, promene na elementima isečka odražavaju se globalno, ali promena isečka same po sebi — ne.