以下代码输出什么?
package main
func main() {
var x = []int{4: 44, 55, 66, 1: 77, 88}
println(len(x), x[2])
}
- A:5 66
- B:5 88
- C:7 88
- D:以上都不对
C 在线运行
Go中切片\数组初始化是可以携带索引的。
// 1. 不带键的元素
slice1 := []int{1, 2, 3}
// 2. 带键的元素(键是索引)
slice2 := []string{0: "a", 1: "b", 2: "c"}
本题中是一种带有显式索引和隐式索引的混合初始化方式。
解析 []int{4: 44, 55, 66, 1: 77, 88} 的初始化过程
- 4: 44,显式指定索引下标 4 处的值为 44。 [0, 0, 0, 0, 44]
- 55 和 66 ,未指定索引,则从上一个索引位置开始依次放置。
[0, 0, 0, 0, 44, 55, 66] - 1: 77,显式指定索引下标 1 处的值为 77。
[0, 77, 0, 0, 44, 55, 66] - 88 ,未指定索引,则从上一个索引位置开始依次放置。
[0, 77, 88, 0, 44, 55, 66]
因此 x的内容为 [0, 77, 88, 0, 44, 55, 66]
本题问该切片(len(x), x[2]) ,得出输出结果为答案C 7 88