creating a slice
// initialized
mySlice := []type{val1, val2, ..., valN}slicing syntax
slice[start:end] // slices from [start, end)
// omiting start means "start at 0", omiting end means "go all the way to the end"extending arrays with slices
mySlice := []int{1, 2, 3}
mySlice = append(mySlice, 1, 3, 4)
// mySlice = [1, 2, 3, 1, 3, 4]
or
slice1 := []int{1, 2, 3}
slice2 := []int{4, 5, 6}
combined = append(slice1, slice2...)
// combined = [1, 2, 3, 4, 5, 6]preallocation
slice := make([]type, size)
// slice will have length size and default values for typemultidimensional slices
board := [][]string{
[]string{"_", "_", "_"}, // <- this line uses type declaration
{"_", "_", "_"}, // <- these last two do not
{"_", "_", "_"}, // type declaration here is optional
}