代码介绍

HowTocreate2DMap()

HowTocreate2DMap()演示了如何创建一个二维关联数组(后面简称为字典)。如果你知道如何创建可以直接跳过。

func1()

func1()为实际的探究内容

package main

import "fmt"

type MyMap map[int]int

//如何创建一个二位字典
func HowTocreate2DMap(){
	m:=make(map[int]MyMap) //指向字典的字典

	m[0]=make(map[int]int) //先分配空间
	m[0][0]=100 	//map[0:map[0:100]] 如果没有没配空间(即省略上一步操作)而直接赋值,会返回错误:panic: assignment to entry in nil map
	fmt.Println(m)
}

//指向字典的字典  值的修改
func func1(){ 
	m:=make(map[int]MyMap)
	temp:=make(map[int]int)
	m[0]=temp
	m[0][0]=100
	temp[0]=500
	fmt.Println(temp) 	//map[0:500]
	fmt.Println(m) 		//map[0:map[0:500]]   原因解释:m[0]与temp使用同一块内存空间。(个人观点)

//结论:二维切片与二位字典有着类似的功能。二维切片内的第二维值可以和一个维切片的同一块地址空间
}

func main(){
	HowTocreate2DMap()
	func1()

}