申请网站建设费用的请示,wordpress蛋花儿最新,婚庆摄影网站模板,东莞网络建设公司一、map介绍
1、map说明
map是一种无须的基于key-value的数据结构#xff0c;Go语言中的map是引用类型#xff0c;必须初始化才能使用Go语言中map的定义语法如下#xff1a;map[KeyType]ValueType其中 KeyType#xff1a;表示键的类型ValueType#xff1a;表示键对应的值…一、map介绍
1、map说明
map是一种无须的基于key-value的数据结构Go语言中的map是引用类型必须初始化才能使用Go语言中map的定义语法如下map[KeyType]ValueType其中 KeyType表示键的类型ValueType表示键对应的值的类型map类型的变量默认初始值为nil需要使用make()函数来分配内存其中cap表示map的容量该参数虽然不是必须的注意获取map的容量不能使用capcap返回的是数组切片分配的空间大小根本不能用于map要获取map的容量可以用len函数
2、定义map
1、map定义方法1
package mainimport fmtfunc main() {scoreMap : make(map[string]int,8)scoreMap[snail]100scoreMap[pupu]90fmt.PrintIn(scoreMap) //map[snail:100 pupu:90]fmt.PrintIn(scoreMap[snail]) //100fmt.Printf(type of a:%T\n,scoreMap) //type of a:map[string]int
}
2、map定义方法2
package main
import (fmt
)
func main() {userInfo : map[string]string{username: IT Snail,password: 123456,}fmt.Println(userInfo) // map[password:123456 username:IT Snail]
}
3、map 嵌套 map
package mainimport fmtfunc main() {var mapSlice make([]map[string]string,3)for index, value : range mapSlice {fmt.Printf(index:%d value:%v\n,index,value)}fmt.PrintIn(################### after init ################)mapSlice[0] make(map[string]string,10)mapSlice[0][name] SnailmapSlice[0][password] 123456mapSlice[0][address] 浦东新区for index, value : range mapSlice {fmt.Printf(index:%d,value:%v\n,index,value)}
}
/*
index:0 value:map[]
index:1 value:map[]
index:2 value:map[]
#################### after init ################
index:0 value:map[address:海淀区 name:小王子 password:123456]
index:1 value:map[]
index:2 value:map[]*/
三、map 基本使用
1、判断某个建是否存在
package main import fmtfunc main() {userInfo : map[string]string{username:Snail,password:123456,}v,ok : userInfo[username]if ok {fmt.PrintIn(v) //Snail}else {fmt.PrintIn(map中没有此元素)}
}
2、delete()函数
使用的delete()内建函数从 map 中删除一组键值对delete()函数的格式如下delete(map对象 key)其中 map 对象表示要删除键值对的 map 对象key表示要删除的键值对的键
package mainimport fmtfunc main() {scoreMap :make(map[string]int)ScoreMap[pupu]90ScoreMap[Snail]100scoreMap[白河车] 70delete(scoreMap,Snail) //将 Snail100 从 map 中删除for k,v : range ScoreMap{fmt.PrintIn(k,v)}
}
/*
pupu 90
白河车 70
*/
四、map 遍历
1、遍历 key 和 value
package mainimport fmtfunc main() {scoreMap :make(map[string]int)ScoreMap[pupu]90ScoreMap[Snail]100scoreMap[白河车] 70for k,v : range ScoreMap{fmt.PrintIn(k,v)}
}
/*
pupu 90
Snail 100
白河车 70
*/
2、只遍历 key
注意遍历 map 时的元素顺序余添加键值对的顺序无关
package mainimport fmtfunc main() {scoreMap :make(map[string]int)ScoreMap[pupu]90ScoreMap[Snail]100scoreMap[白河车] 70for k,v : range ScoreMap{fmt.PrintIn(k)}
}
/*
pupu
Snail
白河车
*/
3、顺序遍历 map
package main
import (fmtsort
)
func main() {// 第一生成字典scoreMapvar scoreMap make(map[string]int, 200)for i : 0; i 10; i {key : fmt.Sprintf(stu%02d, i) //生成 stu 开头的字符串scoreMap[key] i}// 第二取出 map 中的所有 key 存入切片 keysvar keys make([]string, 0, 200)for key : range scoreMap {keys append(keys, key)}// 第三对切片进行排序sort.Strings(keys)// 第四按照排序后的 key 遍历 mapfor _, key : range keys {fmt.Println(key, scoreMap[key])}
}
/*
stu00 0
stu01 1
stu02 2
stu03 3
stu04 4
stu05 5
stu06 6
stu07 7
stu08 8
stu09 9*/