Golang map

package main

import (
	"fmt"
	"sort"
)

func main() {
	//map
	var m1 map[string]int
	fmt.Println(m1 == nil) //true 没初始化,为空
	//map 会自动扩容
	m1 = make(map[string]int, 5)
	m1["liming"] = 20
	fmt.Println(m1) // map[liming:20]

	//获取值时,key不存在时;
	fmt.Println(m1["sss"]) //0 如果key 不存在;返回对应值的'零'值;
	score, ok := m1["sss"]
	if !ok {
		fmt.Println("没有这个 sss")
	} else {
		fmt.Println("sss对应值:", score)
	}
	//delete:
	delete(m1, "sss")      //删除key 不存在,什么都不干
	delete(m1, "liming")   //删除对应元素
	fmt.Println(m1)        //[]
	fmt.Println(m1 == nil) //false

	//遍历map
	//使用for range 获取所有key,遍历所有key 分别获取k v
	m2 := make(map[string]int, 5) //创建map
	m2["s0"] = 1
	m2["s1"] = 2
	m2["s2"] = 3
	m2["s3"] = 4
	m2["s4"] = 5

	keys := make([]string, 0) //创建切片存放map的key
	for key := range m2 {
		keys = append(keys, key)
	}
	sort.Strings(keys)
	fmt.Println(keys) //将key 排序 [s0 s1 s2 s3 s4]
	for _, key := range keys {
		fmt.Printf("key= %s val= %v \n", key, m2[key])
	}
	/*
		key= s0 val= 1
		key= s1 val= 2
		key= s2 val= 3
		key= s3 val= 4
		key= s4 val= 5
	*/

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值