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.