标签:tin 种子 end 初始 动态 随机数 容量 key comm
map是无序的基于key-value的数据结构。map是引用类型,其内部使用散列表(hash)实现
必须初始化才能使用
var m1 map[string]int //声明:key为string类型,值为int类型m1 = make(map[string]int, 10) //初始化:必须要初始化才能用.并且要预估容量,避免在运行中动态扩容//存值m1["a"] = 1m1["b"] = 2//取值value, ok := m1[‘c‘] //如果取一个不存在的值:value=对应类型的零值, ok=false遍历for k, v := range m1 {fmt.println(k, v)}for k := range m1 {fmt.println(k)}for _, v := range m1 {fmt.println(v)}
删除delete(m1, "a")delete(m1, "ff") //删除不存在的key,不做任何操作
// 元素类型为map的切片
var s1 = make([]map[int]string, 0, 10)
s1[0][100] = "A" //失败。切片长度是0没有对map初始化
s1[0] = make(map[int]string, 1)// 值为切片类型的map
var m1 = make(map[string][]int, 10)
m1["bj"] = []int{10,20,30}
rand.Seed(time.Now().UnixNano()) //初始化随机数种子 var scoreMap = make(map[string]int, 200) for i := 0; i < 100; i++ { key := fmt.Sprintf("stu%02d", i) //生成stu开头的字符串 value := rand.Intn(100) //生成0~99的随机整数 scoreMap[key] = value } //取出map中的所有key存入切片keys var keys = make([]string, 0, 200) for key := range scoreMap { keys = append(keys, key) } //对切片进行排序 sort.Strings(keys) //按照排序后的key遍历map for _, key := range keys { fmt.Println(key, scoreMap[key]) }
标签:tin 种子 end 初始 动态 随机数 容量 key comm
原文地址:https://www.cnblogs.com/staff/p/13220911.html