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[]
写入自己的博客中才能记得长久
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-03-12 在虚拟机上搭建自己的 git 服务器并创建 git 仓库