Junior — Middle
Kuidas õigesti luua ja initsialiseerida slices Go keeles?
sobes.tech AI
Vastus AI-lt
Go keeles on viilud (slices) dünaamilised andmestruktuurid, mis esindavad viidet massiivile koos määratud pikkuse ja mahutavusega.
Viile saab luua ja initsialiseerida mitmel viisil:
- Viilu deklareerimine ilma initsialiseerimiseta (null-viil):
var s []int // null-viil, pikkus ja mahutavus 0
- Literal kasutamine viilu initsialiseerimiseks:
s := []int{1, 2, 3} // pikkusega 3 viil
- Viilu loomine make funktsiooni abil:
s := make([]int, 5) // pikkusega 5, täidetud nullidega
s2 := make([]int, 3, 10) // pikkus 3, mahutavus 10
make funktsioon eraldab taustal massiivi ja tagastab viilu, mis sellele viitab.
- Massiivist viilu loomine:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // elementide viil indeksitega 1,2,3
Oluline on meeles pidada, et viilud on viited massiividele, seega elementide muutmine viilul muudab ka algset massiivi.
Näide kasutusest:
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
}
See lähenemine võimaldab tõhusalt töötada dünaamiliste massiividega Go keeles.