```go
package main
import "fmt"
func main() {
x := []int{1, 2, 3}
for i := range x { x = append(x, i) }
fmt.Println(x)
}
```
备选答案:
- A: [1 2 3]
- B: [1 2 3 1 2 3]
- C: [1 2 3 0 1 2]
- D: 死循环
敢不运行回复你的答案吗?
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