【Go 笔试题】以下代码输出结果是什么?

channel · · 3760 次点击
忘记了K V了 :blush: ``` package main import "fmt" func main() { x := []int{1, 2, 3} for i, v := range x { fmt.Println(i, v) x = append(x, v) } fmt.Println(x) } ```
#10
更多评论
C。 因为`range`后面的表达式只求一次值(即只计算一次),所以程序等价于: ``` func main() { x := []int{1, 2, 3} for i := range []int{1, 2, 3} { x = append(x, i) } fmt.Println(x) } ``` 而只用一个变量接收 range <slice>,得到是 index,所以`i`的值会得到0,1,2。故选C。
#2