Sobes.tech
Junior — Middle

Може ли да се мења садржај масивa који је прослеђен као slice током извршавања програма?

sobes.tech АИ

Одговор од АИ

Da, sadržaj niza koji je prosleđen kao slice može se menjati tokom izvršavanja programa. Slice u Go jeziku je struktura koja sadrži pokazivač na niz, dužinu i kapacitet. Promene na elementima slice-a odražavaju se na originalni niz, jer slice ukazuje na njegove podatke.

Primer:

package main
import "fmt"

func modifySlice(s []int) {
    s[0] = 100
}

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

Dakle, izmena slice-a menja i originalni niz.