2022-10-10:以下go语言代码输出什么?A:[1 2 3 0 1 2];B:死循环;C:[1 2 3 1 2 3];D:[1 2 3]。 package main import “fmt“

2023-07-30,,

2022-10-10:以下go语言代码输出什么?A:[1 2 3 0 1 2];B:死循环;C:[1 2 3 1 2 3];D:[1 2 3]。

package main

import "fmt"

func main() {
v := []int{1, 2, 3}
for i := range v {
v = append(v, i)
}
fmt.Println(v)
}

答案选A。在遍历之前就获取的切片的长度len_temp := len(v)遍历的次数不会随着切片的变化而变化,代码自然不会是死循环了。另外,i是序号,不是值,在go语言里,for range第一个值一定是序号。这跟其他语言不一样,其他语言有可能是值,容易搞混淆。

等价于如下代码​:

package main

import "fmt"

func main() {
v := []int{1, 2, 3}
len_temp := len(v)
for i := 0; i < len_temp; i++ {
v = append(v, i)
}
fmt.Println(v)
}

2022-10-10:以下go语言代码输出什么?A:[1 2 3 0 1 2];B:死循环;C:[1 2 3 1 2 3];D:[1 2 3]。 package main import “fmt“的相关教程结束。

《2022-10-10:以下go语言代码输出什么?A:[1 2 3 0 1 2];B:死循环;C:[1 2 3 1 2 3];D:[1 2 3]。 package main import “fmt“.doc》

下载本文的Word格式文档,以方便收藏与打印。