Junior — Middle
Ako správne vytvárať a inicializovať slices v Go?
sobes.tech AI
Odpoveď od AI
V jazyku Go sú rezy (slices) dynamické dátové štruktúry, ktoré predstavujú odkaz na pole s určenou dĺžkou a kapacitou.
Rezy je možné vytvárať a inicializovať rôznymi spôsobmi:
- Deklarácia rezu bez inicializácie (nil-rez):
var s []int // nil-rez, dĺžka a kapacita 0
- Inicializácia rezu pomocou literálu:
s := []int{1, 2, 3} // rez dĺžky 3
- Vytvorenie rezu pomocou funkcie make:
s := make([]int, 5) // rez dĺžky 5, naplnený nulami
s2 := make([]int, 3, 10) // dĺžka 3, kapacita 10
Funkcia make alokuje za scénou pole a vráti rez, ktorý na ne ukazuje.
- Vytvorenie rezu z poľa:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // rez prvkov s indexmi 1,2,3
Je dôležité si zapamätať, že rezy sú odkazy na polia, takže zmena prvkov v reze mení aj pôvodné pole.
Príklad použitia:
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
}
Tento prístup umožňuje efektívne pracovať s dynamickými poľami v Go.