转摘2022-08-03:以下go语言代码输出什么?A:2;B:3;C:1;D:0。 package main import “fmt“ func main() { slice := []i

嘉丝琪阅读量 21

2022-08-03:以下go语言代码输出什么?A:2;B:3;C:1;D:0。

复制代码
package main

import "fmt"

func main() {

    slice := []int{0, 1, 2, 3}
    m := make(map[int]*int)

    for key, val := range slice {
        m[key] = &val
    }

    fmt.Println(*m[2])
}

答案2022-08-03:

答案选B。val只会定义一次,等价于以下代码。

复制代码
import (
	"fmt"
)

func main() {

	slice := []int{0, 1, 2, 3}
	m := make(map[int]*int)

	key := 0
	val := 0
	for key < len(slice) {
		val = slice[key]
		m[key] = &val
		key++
	}

	fmt.Println(*m[2])
}

![2022-08-03:以下go语言代码输出什么?A:2;B:3;C:1;D:0。 package main import “fmt“ func main() { slice := []i_go语言](https://s2.51cto.com/images/blog/202305/11172440_645cb4585565f59922.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184 "在这里插入图片描述")


复制代码
    ===========================
    【来源: 51CTO】
    【作者: 福大大架构师每日一题】
    【原文链接】 https://blog.51cto.com/moonfdd/6267364
    声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。
标签:
0/300
全部评论0
0/300