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.