码迷,mamicode.com
首页 > 编程语言 > 详细

Map | Go语言基础

时间:2018-12-03 11:57:25      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:获取值   bool   append   array   lock   false   冒泡排序   make   code   

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)
}

 

 

Map | Go语言基础

标签:获取值   bool   append   array   lock   false   冒泡排序   make   code   

原文地址:https://www.cnblogs.com/pymkl/p/10057575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!