Slice of a slice


We can take a slice of a slice. It is just another, most likely smaller, window on the same array in the background.

examples/slice-of-slice/slice_of_slice.go
package main

import (
    "fmt"
)

func main() {
    var dwarfs = []string{"Doc", "Grumpy", "Happy", "Sleepy", "Bashful", "Sneezy", "Dopey"}

    a := dwarfs[:]
    b := dwarfs[2:4]

    fmt.Println(dwarfs)
    fmt.Println(a)
    fmt.Println(b)

    dwarfs[2] = "Snowwhite"
    fmt.Println()
    fmt.Println(dwarfs)
    fmt.Println(a)
    fmt.Println(b)
}

examples/slice-of-slice/slice_of_slice.out
[Doc Grumpy Happy Sleepy Bashful Sneezy Dopey]
[Doc Grumpy Happy Sleepy Bashful Sneezy Dopey]
[Happy Sleepy]

[Doc Grumpy Snowwhite Sleepy Bashful Sneezy Dopey]
[Doc Grumpy Snowwhite Sleepy Bashful Sneezy Dopey]
[Snowwhite Sleepy]