Junior — Middle
Ce valoare are un link sau un pointer în interiorul unei structuri care utilizează un slice într-un limbaj de programare?
sobes.tech AI
Răspuns de la AI
În Go, un slice este o structură care conține un pointer către un array, o lungime și o capacitate. Când un slice este utilizat în interiorul unei structuri, slice-ul în sine este stocat ca o valoare, dar în interiorul său există un pointer către datele array-ului.
Aceasta înseamnă că, la copierea structurii, se copiază și slice-ul, dar ambele slice-uri vor indica același array de date. Modificările făcute printr-un slice se vor reflecta în celălalt dacă ambele indică același array.
Exemplu:
package main
import "fmt"
type MyStruct struct {
Data []int
}
func main() {
s1 := MyStruct{Data: []int{1, 2, 3}}
s2 := s1 // copierea structurii
s2.Data[0] = 100
fmt.Println(s1.Data) // Va afișa [100 2 3], deoarece Data indică același array
}
Prin urmare, referința din interiorul slice-ului din structură indică către un array comun, ceea ce este important de avut în vedere la copierea și modificarea datelor.