对只有一个元素的切片,从索引1开始截取为什么不会报错?

func main() {
    arr := []int{7}
    s := arr[1:]
    fmt.Println(s)
}
阅读 1k
1 个回答

语法是允许这样写的,因为切片是半开区间,比如下面的例子,你可以写[2:],等同于[2:2]。如果不允许这样写,那么就没有办法得到一个空的切片了。

func main() {
    arr := []int{7, 2}
    s := arr[:2]
    fmt.Println(s)
}
推荐问题