docs: Map 键值对

This commit is contained in:
Shikong 2021-09-20 16:40:53 +08:00
parent 163ffa5fa9
commit 3e4bc51775
2 changed files with 58 additions and 0 deletions

33
base/map/main.go Normal file
View File

@ -0,0 +1,33 @@
package main
import "fmt"
func main() {
// map 为引用类型 必须 初始化后 才能使用
// map[键类型]值类型
m1 := make(map[string]string, 5)
m1["name"] = "shikong"
m1["age"] = "22"
fmt.Printf("m1 => %T %+v\n", m1, m1)
// 第一个变量接收 对应key 的 value值
// 第二个变量接收 一个布尔值 若 key存在 则为 true 否则为 false
val, ok := m1["test"]
fmt.Printf("val: %#v ok: %v\n", val, ok)
fmt.Println("=========================================================")
// map 的 遍历
for k, v := range m1 {
fmt.Printf("k: %s v: %s\n", k, v)
}
fmt.Println("=========================================================")
// 删除
// delete 按照指定的键将 元素 从 map 中删除 若 map 为 nil 或 无此元素, delete不进行操作
delete(m1, "name")
fmt.Printf("m1 => %T %+v\n", m1, m1)
}

25
base/map/slice/main.go Normal file
View File

@ -0,0 +1,25 @@
package main
import "fmt"
func main() {
// 元素 类型为 map 的 slice
// 此处 仅 初始化了 切片 未初始化 map
var s1 = make([]map[string]string, 5, 10)
fmt.Printf("s1 => %T %+v\n", s1, s1)
// 需 初始化 map
s1[0] = make(map[string]string, 1)
// 再 对 map 进行操作
s1[0]["name"] = "shikong"
fmt.Printf("s1 => %T %+v\n", s1, s1)
fmt.Println("=========================================================")
// 值为 slice 的 map
var m1 = make(map[string][]string, 5)
fmt.Printf("m1 => %T %+v\n", m1, m1)
m1["asia"] = []string{"China", "China/HongKong", "China/Macao", "China/Taiwan", "Japan"}
fmt.Printf("m1 => %T %+v\n", m1, m1)
}