Golang – Slice

lexart / 03.03.2017

Slice je segment pole. Stejně jako pole je slice indexována a má délku. Narozdíl od pole se může tato délka měnit.
Rozdíl mezi definováním pole a slice je pouze v chybějící hodnota mezi hranatými závorkami. Zde  je příklad slice.

var x []int

V tomto případě má x nulovou délku.

Pokud chcete vytvořit slice, měli by jste použít vestavěnou funkci make.

x:=make([]int, 5)

Vytvořili jsme slice které je asociované s polem typu int  o délce 5. Slice je vždycky asociované s nějakým polem a ačkoli slice nemůže být nikdy delší než dané pole, může být menší(kratší).
Proto funkce make umožňuje zadat třetí parametr.

x:=make([]int, 5, 10)

Vytvořili jsme slice o délce 5 , která je asociativní s polem o kapacitě(délce) 10.

Další z možností jak vytvořit slice je použití [low:high] v definici.

arr:=[5]int{1,2,3,4,5}     //vytvořili jsme pole arr s hodnotama 1,2,3,4,5
x:=arr[0:5]   // vytvořili jsme slice
package main
import ( "fmt")
func main() {
s:=make([]string,3)
fmt.Println("emp:", s)
s[0]="a"
s[1]="b"
s[2]="c"
fmt.Println("set:", s)
s=append(s, "d")
s=append(s, "e", "f")
fmt.Println("append:", s)}

 

SHARE