写点什么

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

  • 2022-10-12
    北京
  • 本文字数:242 字

    阅读完需:约 1 分钟

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

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


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"] (map index expression of type int)。golang 里面的 map,当通过 key 获取到 value 时,这个 value 是不可寻址的,因为 map 会进行动态扩容,当进行扩展后,map 的 value 就会进行内存迁移,其地址发生变化,所以无法对这个 value 进行寻址。



发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2021-02-15 加入

还未添加个人简介

评论

发布
暂无评论
2022-10-12:以下go语言代码输出什么?A:1;B:2;C:panic;D:不能编译。 package main import “fmt“ func main() { m := m_golang_福大大架构师每日一题_InfoQ写作社区