Slices adalah sequence key data, lebih umum digunakan dalam Golang. Slice mirip dengan array, dengan kelebihan ukuran slice flexible.
Deklarasi slice sama dengan array, namun tidak perlu menentukan ukuran slices.
slice1 := []string{"a", "b", "c", "d"}
Slice juga bisa dibuat dengan menggunakan fungsi make()
make([]tipe_data, panjang_slice, kapasitas_slice)
slice2 := make([]string, 3, 3)
make([]tipe_data, panjang_slice)
slice2 := make([]string, 3)
Panjang dan kapasitas slice dapat dilihat menggunakan fungsi len dan cap.
len(slice2)
cap(slice2)
SLice juga dapat dibuat dengan melakukan “slicing” dari slice atau array. Slicing dengan menggunakan 2 index yang dipisahkan dengan colon sebagai range.
Contoh, b[1:4] membuat slice element ke-1 sampai ke-3 dari b.
b := []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}
b[1:4] // akan menghasilkan slice []string{"Mon", "Tue", "Wed"}
Index pada range slicing adalah optional, dapat dikosongkan salah satu, atau keduanya. Silakan bereksperimen dengan code dibawah.
package main
import (
"fmt"
)
func main() {
b := []string{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}
fmt.Println(b[1:4])
fmt.Println(b[:4])
fmt.Println(b[2:])
fmt.Println(b[:])
}
Hasil keluaran program diatas adalah sebagai berikut
[Mon Tue Wed]
[Sun Mon Tue Wed]
[Tue Wed Thu Fri Sat]
[Sun Mon Tue Wed Thu Fri Sat]
Untuk dokumentasi lebih lengkap silakan lihat https://blog.golang.org/slices-intro