Junior — Middle
Cum se creează și se inițializează corect slice-urile în Go?
sobes.tech AI
Răspuns de la AI
În Go, slice-urile sunt structuri de date dinamice care reprezintă o referință la un array cu o lungime și o capacitate specificate.
Slice-urile pot fi create și inițializate în mai multe moduri:
- Declarație de slice fără inițializare (slice nul):
var s []int // slice nul, lungime și capacitate 0
- Inițializare de slice folosind un literal:
s := []int{1, 2, 3} // slice cu lungimea 3
- Crearea unui slice folosind funcția make:
s := make([]int, 5) // slice cu lungimea 5, umplut cu zero
s2 := make([]int, 3, 10) // lungimea 3, capacitatea 10
Funcția make alocă în fundal un array și returnează un slice care indică către acesta.
- Crearea unui slice dintr-un array:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // slice al elementelor cu indicii 1,2,3
Este important să rețineți că slice-urile sunt referințe la array-uri, deci modificarea elementelor din slice modifică și array-ul original.
Exemplu de utilizare:
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
}
Această abordare permite lucrul eficient cu array-uri dinamice în Go.