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

channel · · 3753 次点击
go 是传值的方式,只是传递一个数据的备份
#5
更多评论
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