Map | Go语言基础

package main // 当前包声明


func main() { // 程序的入口
    // map
    // 创建map(make创建的都是引用类型)
    var tempMap map[int] string   // key类型,value类型
    var tempMap = map[string]int{"go":98, "python":68, "java":89}
    fmt.Println(tempMap)
    var tempMap =  make(map[int]string)
    tempMap[1] = "hello"
    tempMap[2] = "world"
    fmt.Println(tempMap)

    // 如果不初始化创建map,就会创建一个nil map,不能来存放键值对.通常使用make()创建容器,再去操作.
    var tempMap = map[int]int{1: 2, 2: 4, 3: 6}
    tempMap[1] = "hello"
    fmt.Println(tempMap)

    if tempMap == nil{
        tempMap = make(map[int]string)
        fmt.Println(tempMap==nil)
    }

    // 取值
    // 通key来获取值,如果不存在就获取该value的默认值.
    value, ok := tempMap[1] // 返回value与ok-idiom表示是否存在key.
    fmt.Println(value, ok)  //0 false

    // 遍历map
    for k, v := range tempMap {
        fmt.Println(k, v)
    }

    // 有序遍历map
    // 将所有key取出排序,遍历key,获取value
    // 冒泡排序
    tempKeys := make([]int, 0, len(tempMap))
    for k := range tempMap {
        tempKeys = append(tempKeys, k)
    }
    sort.Ints(tempKeys)
    fmt.Println(tempKeys)

    // 如果key是字符串sort.Strings()

    // map的数据类型 %T
    // 1.数据类型
    // 基本数据类型:int,float,string,bool
    // 复合数据类型:array, slice, map, function,struct, interface
    // 2.存储特点
    // 值类型:int,float,string,bool,array,struct
    // 引用类型: slice,map

    // map删除(delete: map,key)
    delete(tempMap, 1)
    fmt.Println(tempMap)

    // 将map存储在slice中
    tempSlice:=make([] map[int]int,0,3)
    tempSlice = append(tempSlice, tempMap)
    fmt.Println(tempSlice)
}

猜你喜欢

转载自www.cnblogs.com/pymkl/p/10057575.html