2022-08-27:以下go语言代码输出什么?A:[0];B:panic;C:7;D:不清楚。

package main

import (
  "fmt"
)

func main() {
  a := make([]int, 20)
  a = []int{7, 8, 9, 10}
  b := a[15:16]
  fmt.Println(b)
}

答案选B。a 被重新赋值为 []int{7, 8, 9, 10},之前 make 创建的 slice 跟 a 没有任何关系了。因此 a[15:16] 肯定会越界,所以 panic。

在这里插入图片描述