
package main
import "fmt"
func main() {
slice := []int{1}
fmt.Println(slice[1:])
}
Мы ведь обращаемся к элементу слайса с индексом 1, которого нет
Вот цитата:
"For arrays or strings, the indices are in range if 0 <= low <= high <= len(a), otherwise they are out of range. For slices, the upper index bound is the slice capacity cap(a) rather than the length."
Особенно важно последнее предложение
Ну и небольшой пример для полного понимания:
package main
import "fmt"
func main() {
slice := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
slice1 := slice[5:6]
slice2 := slice1[1:10]
fmt.Println(slice1, slice2, cap(slice2), len(slice2))
}
Подробнее
@golang_interview