Sobes.tech
Junior — Middle

Koja je vrednost linka ili pokazivača unutar strukture koja koristi slice u programskom jeziku?

sobes.tech АИ

Одговор од АИ

U Go, slice je struktura koja sadrži pokazivač na niz, dužinu i kapacitet. Kada se slice koristi unutar strukture, sam slice se čuva kao vrednost, ali unutar njega postoji pokazivač na podatke niza.

To znači da, prilikom kopiranja strukture, kopira se i slice, ali oba slice-a će ukazivati na isti niz podataka. Promene putem jednog slice-a će se odraziti na drugi ako oba ukazuju na isti niz.

Primer:

package main
import "fmt"

type MyStruct struct {
    Data []int
}

func main() {
    s1 := MyStruct{Data: []int{1, 2, 3}}
    s2 := s1 // kopiranje strukture
    s2.Data[0] = 100
    fmt.Println(s1.Data) // Ispisaće [100 2 3], jer Data ukazuje na isti niz
}

Dakle, referenca unutar slice-a u strukturi ukazuje na zajednički niz, što je važno imati na umu prilikom kopiranja i menjanja podataka.