Golang基础-八、Map-《Golang,Go,Go,Go学习笔记》

admin 2026-03-24 10:13:12 编程 来源:ZONE.CI 全球网 0 阅读模式
  • 1.map
  • 2.定义Map
  • 3.Map的使用
  • 4.遍历Map
  • 5.map结合slice使用">5.map结合slice使用

    1.map

    1. - map是一种无序的键值集合
    2. - 通过key快速检索数据,类似于索引,指向数据的值
    3. - 是一种集合,可以迭代,因为是无序的,所以返回结果不是固定的

    2.定义Map

    1. func main() {
    2. //1.使用make创建
    3. //make(map[KeyType]ValueType,initialCapacity)
    4. //KeyType 键类型,ValueType 值类型 initialCapacity 初始容量 可选
    5. map1 := make(map[string]int) //创建空的map
    6. map2 := make(map[string]int, 10) //创建容量为10的map
    7. map1["1"]=1
    8. fmt.Println(map1["1"], map2)
    9. // 2.map关键字定义
    10. var m map[string]int
    11. var m1 = map[string]int{
    12. "apple": 1, //key,value
    13. "banana": 2,
    14. "orange": 3,
    15. }
    16. fmt.Println(m)
    17. fmt.Println(m1["apple"])
    18. }

    3.Map的使用

    1. func main(){
    2. //创建初始化map
    3. map1 :=make(map[int]string)
    4. //- map[key] = value 。将vaule赋值给对应的map的key
    5. map1[1]="java"
    6. map1[1]="java+" //如果key存在,就会覆盖原有的值,
    7. map1[2]="golang"
    8. map1[3]="pythone"
    9. fmt.Println(map1)
    10. //- 判断key是否存在,value, ok = map[key]
    11. value,key:=map1[1]
    12. if key{
    13. fmt.Println("key存在:",key,"value值是:",value)
    14. }else{
    15. fmt.Println("key不存在")
    16. }
    17. //- 删除map中的元素, delete(map,key)
    18. delete(map1,3)
    19. fmt.Println(map1)
    20. //- 新增 map[key] = value
    21. map1[4]="php"
    22. fmt.Println(map1)
    23. //- 修改 map[key] = value ,如果存在这个key就是修改。
    24. map1[4]="php+"
    25. fmt.Println(map1)
    26. //- 查看map的大小, len(map)
    27. fmt.Println(len(map1))
    28. }

    4.遍历Map

    1. func main(){
    2. //创建初始化map
    3. map1:=make(map[int]string)
    4. map1[1]="QQ"
    5. map1[2]="WW"
    6. map1[3]="EE"
    7. map2:=map[string]int{"1":1,"2":2,"3":3}
    8. //for key,value range map{} 遍历map
    9. //因map是无序的,所以每次输出顺序可能不一样
    10. for k, v := range map1 {
    11. fmt.Print(k,v)
    12. }
    13. for k,v :=range map2{
    14. fmt.Print(k,v)
    15. }
    16. }

    5.map结合slice使用

    1. func main() {
    2. //创建map保存信息
    3. map1 := make(map[string]string)
    4. map1["name"] = "李一"
    5. map1["sex"] = "男"
    6. map1["age"] = "20"
    7. map2 := map[string]string{
    8. "name": "李二",
    9. "sex": "男",
    10. "age": "34",
    11. }
    12. //创建切片并放入数据
    13. userDatas := make([]map[string]string, 2, 3)
    14. userDatas = append(userDatas, map1)
    15. userDatas = append(userDatas, map2)
    16. //for range 输出信息
    17. for key, value := range userDatas {
    18. fmt.Println("key:", key)
    19. fmt.Println(value["age"])
    20. }
    21. }
    评论:0   参与:  0