为什么golang代码中没有“index out of range”错误

问题描述 投票:0回答:1

我不明白,为什么这段代码不会抛出错误“索引超出范围”?

func main() {
  l := make([]int, 0)
  l = append(l, 1)
  fmt.Println(l)
  l = l[1:] // cut first, but an element with this index does not exist
}

谢谢您的提前

go slice
1个回答
0
投票

从切片末尾开始切片是合法的,导致切片为空:

fmt.Println(l[1:]) // "[]"

不允许在结束后切片:

fmt.Println(l[2:]) // panic: runtime error: slice bounds out of range [2:1]
© www.soinside.com 2019 - 2024. All rights reserved.