go语言 map的定义及注意事项

map的定义及注意事项:

1、普通类型:

map声明后是不分配数据空间的,slice动态数组声明分配,map初始化后会分配数据空间。

  1. var a map[string]string
    a = make( map[string]string, 10)
    var a map[string]string
	//在使用map前需要先make,make作用就是给map分配数据空间,
	// a["no1"] = "宋江" //ok?
	a = make( map[string]string, 10)
	a["no1"] = "宋江"
	fmt.Println(a)
	fmt.Println()

在使用map前需要先make,make作用就是给map分配数据空间,

  1. cities := make(map[string]string)
    make(type,size) size可省略,这种情况分配一个小的起始大小
    cities := make(map[string]string)
    // var cities map[string]string = make(map[string]string)
	cities["no1"] = "北京"
	cities["no2"] = "上海"
	fmt.Println(cities)
	fmt.Println()
likes := map[string]string {
		"like1" : "apple",
		"like3" : "baby",
		"like2" : "honey",
	}
2、value为map类型:
  • studentMap := make(map[string]map[string]string)
    studentMap := make(map[string]map[string]string)
    
	studentMap["stu1"] = make(map[string]string, 3)
	studentMap["stu1"]["name"] = "老张"
	studentMap["stu1"]["sex"] = "girl"
	studentMap["stu1"]["address"] = "北京长安街~"
	
	studentMap["stu2"] = map[string]string {
		"name" : "老李",
		"sex" : "boy",
		"address" : "上海黄浦江",
	}
  • 遍历
   for i1, v1 := range studentMap {
		for i2, v2 := range v1 {
			fmt.Println(i1, i2, "-->",v2)
		}
	}
3、value为结构体类型
type Stu struct {
	Name string
	Age int
	Address string
}
    student := make(map[string]Stu, 10)
    
	Stu1 := Stu{"tom", 18, "北京"}
	Stu2 := Stu{"mary", 27, "上海"}
	
	student["no1"] = Stu1
	student["no2"] = Stu2
	fmt.Println(student)
  • 遍历
for index, value := range student {
		fmt.Printf("学生编号 : %v\t", index)
		fmt.Printf("学生名字 : %v\t", value.Name)
		fmt.Printf("学生年龄 : %v\t", value.Age)
		fmt.Printf("学生地址 : %v\t", value.Address)
		fmt.Println()
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值