package main import "fmt" func main() { intslice := [][]int{[]int{1}, []int{2}} // Grow for index, value := range intslice { value = append(value, 0) intslice[index] = value } insertion := []int{} for index := 0; index < len(intslice)+1; index++ { insertion = append(insertion, 0) } intslice = append(intslice, insertion) fmt.Println(intslice) // Shrink for index, value := range intslice { if len(value) == 0 { fmt.Println("Cant shrink below 0") continue } value = value[:len(value)-1] intslice[index] = value if index == len(intslice)-1 { intslice = intslice[:len(intslice)-1] } } fmt.Println(intslice) }