go 的make([]map[string]int, 5, ), map能自动扩容,内存地址不变

package main
import (
	"fmt"
)
func main() {
	var mapSlice []map[string]int
	fmt.Printf("before mapSlice init %v len=%d,cap%d\n",mapSlice,len(mapSlice),cap(mapSlice))
	mapSlice = make([]map[string]int, 5, )
	fmt.Printf("after mapSlice init %v len=%d,cap%d\n",mapSlice,len(mapSlice),cap(mapSlice))

	for index, value := range mapSlice {
		fmt.Printf("index:%d value:%v\n", index, value)
	}
	fmt.Println()
	mapSlice[0] = make(map[string]int, 5)
	fmt.Println("01 before mapSlice[0] init",len(mapSlice[0]),cap(mapSlice),mapSlice[0])
	fmt.Printf("01 before mapSlice[0]地址=%p\n\n",&mapSlice[0])
	mapSlice[0]["a"] = 100
	mapSlice[0]["b"] = 200
	mapSlice[0]["c"] = 300
	mapSlice[0]["d"] = 400
	mapSlice[0]["e"] = 500
	fmt.Println("02 before mapSlice[0] init",len(mapSlice[0]),cap(mapSlice),mapSlice[0])
	fmt.Printf("02 before mapSlice[0]地址=%p\n\n",&mapSlice[0])
	mapSlice[0]["f"] = 600
	fmt.Println("03 before mapSlice[0] init",len(mapSlice[0]),cap(mapSlice),mapSlice[0])
	fmt.Printf("03 before mapSlice[0]地址=%p\n\n",&mapSlice[0])

	fmt.Println("04 after mapSlice[0] init",len(mapSlice[0]),cap(mapSlice))
	for index, value := range mapSlice {
		fmt.Printf("index:%d value:%v\n", index, value)
	} 
}

输出:

before mapSlice init [] len=0,cap0
after mapSlice init [map[] map[] map[] map[] map[]] len=5,cap5
index:0 value:map[]
index:1 value:map[]
index:2 value:map[]
index:3 value:map[]
index:4 value:map[]

01 before mapSlice[0] init 0 5 map[]
01 before mapSlice[0]地址=0xc0000b6330

02 before mapSlice[0] init 5 5 map[a:100 b:200 c:300 d:400 e:500]
02 before mapSlice[0]地址=0xc0000b6330

03 before mapSlice[0] init 6 5 map[a:100 b:200 c:300 d:400 e:500 f:600]
03 before mapSlice[0]地址=0xc0000b6330

04 after mapSlice[0] init 6 5
index:0 value:map[a:100 b:200 c:300 d:400 e:500 f:600]
index:1 value:map[]
index:2 value:map[]
index:3 value:map[]
index:4 value:map[]
posted @   ty1539  阅读(443)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2021-03-12 在虚拟机上搭建自己的 git 服务器并创建 git 仓库
点击右上角即可分享
微信分享提示