Sobes.tech
Junior — Middle

Wat is de waarde van een link of pointer binnen een structuur die een slice gebruikt in een programmeertaal?

sobes.tech AI

Antwoord van AI

In Go is een slice een structuur die een pointer naar een array bevat, samen met een lengte en capaciteit. Wanneer een slice binnen een structuur wordt gebruikt, wordt de slice zelf als een waarde opgeslagen, maar bevat het een pointer naar de gegevens van de array.

Dit betekent dat bij het kopiëren van de structuur, ook de slice wordt gekopieerd, maar beide slices wijzen naar dezelfde array van gegevens. Wijzigingen via één slice worden weerspiegeld in de andere als ze naar dezelfde array wijzen.

Voorbeeld:

package main
import "fmt"

type MyStruct struct {
    Data []int
}

func main() {
    s1 := MyStruct{Data: []int{1, 2, 3}}
    s2 := s1 // kopieer de structuur
    s2.Data[0] = 100
    fmt.Println(s1.Data) // Zal [100 2 3] afdrukken, omdat Data naar dezelfde array wijst
}

Dus, de verwijzing binnen de slice in de structuur wijst naar een gedeelde array, wat belangrijk is om in gedachten te houden bij het kopiëren en wijzigen van gegevens.