下面这段代码输出什么?

package main

import (  
    "fmt"
)

func main() {  
    a := [5]int{1, 2, 3, 4, 5}
    t := a[3:4:4]
    fmt.Println(t[0])
}
  • A.3
  • B.4
  • C.compilation error

B 在线运行

a 为 长度为 5的数组 元素为 1, 2, 3, 4, 5

t := baseStr[low:high:max] low指定开始元素下标,high指定结束元素下标,max指定切片能增长到的元素下标

a[3:4:4] 的意思是 下标为3开始 到下标4结束 左闭右开 最大为到4下标 因此 t的内容为 4

a[3:4:4] // 4 a[3:4:5] // 4 a[3:4:6] // 错误 a 下标最大为4 开区间 所以能为最大为5 a[3:5:5] // [4 5]