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
相关推荐
Chandler2411 小时前
Go语言 GORM框架 使用指南
开发语言·后端·golang·orm
wktomo12 小时前
GO语言学习(二)
学习·golang
你怎么知道我是队长12 小时前
Go语言语法---输入控制
golang
蚂蚁在飞-12 小时前
Golang基础知识—cond
开发语言·后端·golang
李迟13 小时前
Golang实践录:在go中使用curl实现https请求
开发语言·golang·https
BUG制造机.13 小时前
Go 语言的 GMP 模型
golang
张帅涛_66614 小时前
golang读、写、复制、创建目录、删除、重命名,文件方法总结
golang
运维-大白同学14 小时前
go-数据库基本操作
开发语言·数据库·golang
你怎么知道我是队长14 小时前
GO语言语法---if语句
golang
张帅涛_66614 小时前
golang中的反射示例
golang