golang中map赋值

众所周知,golang中map是一个指针,既然是一个指针,那么参数传递、赋值应该都是指针传递,而下面的例子也印证了我的想法

go 复制代码
package main

import "fmt"

func test_map2(m map[string]string) {
	fmt.Printf("inner: %v, %p, %p\n", m, m, &m)
	m = make(map[string]string, 0)
	m["a"] = "11"
	fmt.Printf("inner: %v, %p, %p\n", m, m, &m)
}

func main() {
	// var m map[string]string //未初始化
	m := make(map[string]string)

	fmt.Printf("outer: %v, %p, %p\n", m, m, &m)
	test_map2(m)
	fmt.Printf("outer: %v, %p, %p\n", m, m, &m)
	n := m
	fmt.Printf("outer: %v, %p, %p\n", n, n, &n)
}

输出

go 复制代码
outer: map[], 0xc0000160f0, 0xc000042020
inner: map[], 0xc0000160f0, 0xc000042030
inner: map[a:11], 0xc000016180, 0xc000042030
outer: map[], 0xc0000160f0, 0xc000042020
outer: map[], 0xc0000160f0, 0xc000042038
相关推荐
豆浆whisky1 小时前
Go并发模式选择指南:找到最适合你项目的并发方案|Go语言进阶(19)
开发语言·后端·golang
百***480710 小时前
【Golang】slice切片
开发语言·算法·golang
q***925111 小时前
Windows上安装Go并配置环境变量(图文步骤)
开发语言·windows·golang
稚辉君.MCA_P8_Java21 小时前
通义 Go 语言实现的插入排序(Insertion Sort)
数据结构·后端·算法·架构·golang
源代码•宸1 天前
GoLang写一个简单版生命游戏模拟器
经验分享·笔记·学习·游戏·golang
q***01771 天前
Linux 下安装 Golang环境
linux·运维·golang
稚辉君.MCA_P8_Java1 天前
Gemini永久会员 Go 实现动态规划
数据结构·后端·算法·golang·动态规划
柠石榴1 天前
go-1 模型
开发语言·后端·golang
想搞艺术的程序员1 天前
深入 NSQ 延迟消息实现原理:设计巧思与性能优化
性能优化·golang·nsq
(づど)2 天前
解决VSCode中安装Go环境Gopls失败的问题
vscode·golang