标签:map fmt golang map1 key Println monsters
二话不说,撸码吧
package main
import (
"fmt"
)
/**
* @Description:golang中的map
* @Author: guai
* @Date:2020/2/22 11:28
**/
func main() {
//1、map
//map是key-value数据结构,又称为字段或者关联数组,类似其他语言中的集合
//1.1、map的声明
//var map变量名 map[keyType] valueType
//注意map在声明时不会分配内存,需要使用make初始化
//声明一个map
var map1 map[string]int
//初始化map
map1 = make(map[string]int, 10)
map1["guai"] = 18
map1["shuai"] = 16
//打印map的内容
fmt.Println("map1中的内容:", map1, "map长度为:", len(map1))
//遍历map1中的值
for key, value := range map1 {
fmt.Println("key:", key, " value:", value)
fmt.Println("key:", key, " value:", value)
}
//1.2、对map内容的增删改查
//增与改
//当map中没有该key值时增加
map1["cabbage"] = 120
fmt.Println("map1中的内容:", map1)
//当map中有该key值时修改value
map1["cabbage"] = 18
fmt.Println("修改key=“cabbage”中的内容:", map1)
//根据key值查找value
fmt.Println("key=shuai val=", map1["guai"])
//使用内置函数delete() 根据key值删除
delete(map1, "cabbage")
fmt.Println("删除map1中key=“cabbage”的内容:", map1)
//2、map切片
//类型为map的切片为称为map切片,这样map个数就可以动态变化了
//2.1、声明一个map切片
var monsters []map[string]int
monsters = make([]map[string]int, 2)
if monsters[0] == nil {
monsters[0] = make(map[string]int, 2)
monsters[0]["萝卜"] = 18
monsters[0]["白菜"] = 16
}
if monsters[1] == nil {
monsters[1] = make(map[string]int, 2)
monsters[1]["西红柿"] = 18
monsters[1]["茄子"] = 16
}
//使用append追加一个key-value
monsters = append(monsters, map[string]int{"冬瓜": 12})
fmt.Println(monsters)
//3、map排序
//拱廊中没有正对map的key进行排序的方法
//golang中的map默认使无序的,注意也不是按照添加的顺序村方法,每次遍历的结果可能不一样
//4、map使用细节
//4.1、map是引用类型
//4.2、map可以自动扩容
//4.3、map的value的类型也可以是struct类型
//4.2、map自动扩容测试
//定义map
var mapExpansion map[int]int
//初始化一个长度为1
mapExpansion = make(map[int]int, 1)
//实际赋了两个值
mapExpansion[1] = 1
mapExpansion[2] = 2
fmt.Println("map扩容:", mapExpansion)
//4.3、value类型为结构体
students := make(map[string]Stu, 3)
students["1001"] = Stu{"guai", 16}
students["1002"] = Stu{"shuai", 18}
for key, stu := range students {
fmt.Println("学号:", key)
fmt.Println("姓名:", stu.name)
fmt.Println("年龄:", stu.age)
}
}
//定义一个结构体(和c可太像了)
type Stu struct {
name string
age int
}
任性的萝卜
发布了38 篇原创文章 · 获赞 0 · 访问量 931
私信
关注
标签:map,fmt,golang,map1,key,Println,monsters 来源: https://blog.csdn.net/weixin_44373940/article/details/104441769
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。