golang学习总结-Map 代码总结
package basecode
import "fmt"
/**
golang 中的map
*/
func MyTestMap() {
fmt.Println("===========map test==========")
myFunc1()
}
// golang中的映射 就是java中的map
func myFunc0() {
fmt.Println("\n\n golang map ")
//1 使用make创建
//2 key是string类型 value是int类型
user := make(map[string]int)
user["age"] = 12
user["money"] = 1000
fmt.Println(user)
//delete函数实现对map key的删除
delete(user, "age")
fmt.Println(user)
}
func myFunc1() {
// 以下方式定义make是不行的 map为nil panic: assignment to entry in nil map
//var m1 map[string]int
//m1["age"] = 12
//此时map 是nil 但是可以做一下操作 判断是否存在
var m0 map[string]int
_, ok0 := m0["y"] //此方法判断是否存在key
fmt.Println(ok0)
fmt.Printf("m0 == nil: %t \n", m0 == nil)
m1 := make(map[string]int)
m1["age"] = 12
//可以在初始化的时候指定好map内部的数据
m2 := map[string]int{
"age": 234,
"money": 2028,
"year": 2023,
}
fmt.Println(m2["money"])
//遍历map
for key, val := range m2 {
fmt.Printf("key %s value %d \n", key, val)
}
//判断一个key是否存在于map中
key := "a"
_, ok := m2[key] //此方法判断是否存在key
if ok {
fmt.Printf("m2 存在key %s \n", key)
} else {
fmt.Printf("m2 !!!! 不存在key %s \n", key)
}
//golang 分号 ok语法
key = "age"
if _, ok := m2[key]; ok {
fmt.Printf("m2 存在key %s \n", key)
} else {
fmt.Printf("m2 !!!! 不存在key %s \n", key)
}
}