Junior — Middle
Hoe maak en initialiseer je slices correct in Go?
sobes.tech AI
Antwoord van AI
In Go zijn slices dynamische gegevensstructuren die een verwijzing naar een array vertegenwoordigen met een gespecificeerde lengte en capaciteit.
Slices kunnen op verschillende manieren worden gemaakt en geïnitialiseerd:
- Declaratie van een slice zonder initialisatie (nil-slice):
var s []int // nil-slice, lengte en capaciteit 0
- Initialisatie van een slice met behulp van een literal:
s := []int{1, 2, 3} // slice van lengte 3
- Aanmaken van een slice met de functie make:
s := make([]int, 5) // slice van lengte 5, gevuld met nullen
s2 := make([]int, 3, 10) // lengte 3, capaciteit 10
De functie make reserveert achter de schermen een array en geeft een slice terug die ernaar wijst.
- Aanmaken van een slice uit een array:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // slice van elementen met indices 1,2,3
Het is belangrijk om te onthouden dat slices verwijzingen zijn naar arrays, dus het wijzigen van elementen in een slice wijzigt ook de originele array.
Voorbeeld van gebruik:
package main
import "fmt"
func main() {
s := make([]int, 3, 5)
fmt.Println(s) // [0 0 0]
fmt.Println(len(s)) // 3
fmt.Println(cap(s)) // 5
s = append(s, 4, 5)
fmt.Println(s) // [0 0 0 4 5]
fmt.Println(len(s)) // 5
fmt.Println(cap(s)) // 5
}
Deze aanpak maakt het mogelijk om efficiënt te werken met dynamische arrays in Go.