go map %q输出原始字符串
说明
map:
字典、映射 key———value key:唯一、无序。不能是引用类型数据。
map 不能便用cap()
创建方式:
1. var m1 map[int]string ---不能存储数据
2. m2 := map[int]string ---能存储数据
3. m3 := make(map[int]string) ---默认len = 0
4.m4 := make(map[int]string, 10)
初始化:
var m map[int]string = map[int]string{1: "aaa", 2:"bbb"} 保证key彼此不重复
map的遍历:
遍历map:
for key值, value值:= range map {
}
for key值 :=range map {
}
判断map中key是否存在.
map[下标]运算:返回两个值,第一个表value的值,如果value不存在。nil
第二个表key是否存在的bool类型。存在true,不存在false
删除map:
delete(函数:参1: 待删除元素的map 参2: key值
map做函数参数和返回值,传引用.
代码:
package main
import "fmt"
func rangeMap(){
//遍历map %q 显示格式化前字符串的内容
var m8 map[int]string = map[int]string {1:"Luffy", 130:"Sanji", 1301:"Zoro"}
for k, v := range m8{
fmt.Printf( "key : %d --- va1ue : %q\n", k, v)
}
// range返回的key/ value 。省略value打印。
for _, K := range m8 {
fmt.Printf("key : %s \n", K)
}
}
func hasKey(){
//判断map中的key是否存在
var m9 map[int]string = map[int]string {1:"Luffy", 130:"Sanji", 1301:"Zoro"}
if v, has := m9[11]; !has {// M m9l下标]返回两个值,第一个是value,第二个是bool代表key是否存在。
fmt.Println( "false value=", v, "has=", has)
} else {
fmt.Println( " value=", v,"has=", has)
}
}
// map做函数参数, 返回值,传引用
func mapDelete(m map[int]string, key int) {
delete(m, key) //删除m中键值为key的map元素
}
func testMapDelete(){
m := map[int]string {1:"Luffy", 130:"Sanji", 1301:"Zoro"}
fmt.Println("before de1ete m :", m)
mapDelete(m, 130)
fmt.Println( "after delete m :",m)
}
func main(){
rangeMap()
hasKey()
testMapDelete()
}
/*
map的便用:
遍历map:
for key值, value值:= range map {
}
for key值 :=range map {
}
判断map中key是否存在.
map[下标]运算:返回两个值,第一个表value的值,如果value不存在。nil
第二个表key是否存在的bool类型。存在true,不存在false
删除map:
delete(函数:参1: 待删除元素的map 参2: key值
map做函数参数和返回值,传引用.
*/
输出
key : 1 --- va1ue : "Luffy"
key : 130 --- va1ue : "Sanji"
key : 1301 --- va1ue : "Zoro"
key : Luffy
key : Sanji
key : Zoro
false value= has= false
before de1ete m : map[1:Luffy 130:Sanji 1301:Zoro]
after delete m : map[1:Luffy 1301:Zoro]
写入自己的博客中才能记得长久