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
相关推荐
胖头鱼不吃鱼-1 小时前
Go 原理之 GMP 并发调度模型
java·jvm·golang
研究司马懿1 小时前
【Golang】Go语言函数
开发语言·后端·golang
钟离墨笺3 小时前
Go 语言-->指针
开发语言·后端·golang
岁忧19 小时前
macOS配置 GO语言环境
开发语言·macos·golang
java叶新东老师1 天前
goland编写go语言导入自定义包出现: package xxx is not in GOROOT (/xxx/xxx) 的解决方案
开发语言·后端·golang
五岁小孩1 天前
Go 原理之 GMP 并发调度模型
golang·gmp·并发调度模型
Hello.Reader2 天前
Go-Elasticsearch v9 安装与版本兼容性
elasticsearch·golang·jenkins
五岁小孩2 天前
实操使用 go pprof 对生产环境进行性能分析(问题定位及代码优化)
性能优化·golang·pprof
一杯科技拿铁2 天前
Go 的时间包:理解单调时间与挂钟时间
开发语言·后端·golang
线程A2 天前
Go 语言函数设计原则:避免修改传入参数
golang