Go_033_map 的声明和初始化

不同于切片根据索引查找值,map 类型是根据 key 查找值
map 是引用类型,声明语法

var map_name map[key_type]value_type

var student = map[string]string{
        "name": "yu",
        "age":  "32",
    }

其中

  1. map_name 为 map 的变量名
  2. key_type 为键类型
  3. value_type 是键对应的值类型

切片声明并初始化

    var student = map[string]string{
        "name": "yu",
        "age":  "32",
    }
    fmt.Println(student)

结果

map[age:32 name:yu]

(1)切片是基于索引,map 是基于键(map用键替代索引)。支持key查询 map对象[key] map的存储没有顺序
(2)修改和添加是类似的。如果这个key没有,就是添加。如果存在,就是修改
(3)删除一个key-value,delete(map对象, key值)

package main

import "fmt"

func main() {
    var student = map[string]string{
        "name": "yu",
        "age":  "32",
    }
    fmt.Println("初始的map: ", student)

    fmt.Println("姓名: ", student["name"], "年龄: ",student["age"])
    fmt.Println("map的长度: ", len(student))
    student["gender"] = "male"
    student["height"] = "180"
    fmt.Println("添加之后: ", student)
    student["height"] = "190"
    fmt.Println("修改之后: ", student)
    delete(student, "gender")
    fmt.Println("删除之后: ", student)
}

结果

初始的map:  map[age:32 name:yu]
姓名:  yu 年龄:  32
map的长度:  2
添加之后:  map[age:32 gender:male height:180 name:yu]
修改之后:  map[age:32 gender:male height:190 name:yu]
删除之后:  map[age:32 height:190 name:yu]

你可能感兴趣的:(Go_033_map 的声明和初始化)