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

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])
}

在这里插入图片描述

本作品采用《CC 协议》,转载必须注明作者和本文链接
微信公众号:福大大架构师每日一题。最新面试题,涉及golang,rust,mysql,redis,云原生,算法,分布式,网络,操作系统。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!