zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

Go输出语言代码 什么 2022 10 以下
2023-06-13 09:13:52 时间

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)
}
在这里插入图片描述