首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >2022-10-12:以下go语言代码输出什么?A:1;B:2;C:panic;D:不能编译。 package main import “fmt“ func m

2022-10-12:以下go语言代码输出什么?A:1;B:2;C:panic;D:不能编译。 package main import “fmt“ func m

原创
作者头像
福大大架构师每日一题
发布2022-10-12 21:50:16
发布2022-10-12 21:50:16
4270
举报

2022-10-12:以下go语言代码输出什么?A:1;B:2;C:panic;D:不能编译。

代码语言:go
复制
package main

import "fmt"

func main() {
    m := map[string]int{"uno": 1}
    p := &m["uno"]
    *p = 2
    fmt.Println(m["uno"])
}

答案选D。编译报错invalid operation: cannot take address of m"uno"。

golang里面的map,当通过key获取到value时,这个value是不可寻址的,因为map 会进行动态扩容,当进行扩展后,map的value就会进行内存迁移,其地址发生变化,所以无法对这个value进行寻址。

在这里插入图片描述
在这里插入图片描述

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档