package main import ( "fmt" "strings" ) func printSlice(s []int) { fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s) } func main() { a := make([]int, 5) printSlice(a) b := make([]int, 0, 5) printSlice(b) c := b[:2] printSlice(c) d := c[2:5] printSlice(d) // Slices can contain any type including other slices board := [][]string{ []string{"_", "_", "_"}, []string{"_", "_", "_"}, []string{"_", "_", "_"}, } board[0][0] = "X" board[2][2] = "O" board[1][2] = "X" board[1][0] = "O" board[0][2] = "X" for i := 0; i < len(board); i++ { fmt.Printf("%s\n", strings.Join(board[i], " ")) } }