Go的map结构体

1、map的初始化

package main

import "fmt"

func main() {
	var m map[int]string = map[int]string{1: "张三", 2: "李四", 3: "小红"}
	m1 := map[int]string{}
	m2 := make(map[string]int, 10)
	m2["张三"] = 12
	m2["李四"] = 13
	fmt.Println(m)
	fmt.Println(m1)
	fmt.Println(m2)
	fmt.Println("m2 len == ", len(m2)) //len()返回的是map中已有的键值对个数。
}

输出结果:

map[1:张三 2:李四 3:小红]
map[]               
map[张三:12 李四:13]
m2 len ==  2    

2、map键与值

package main

import "fmt"

func main() {
	var m map[int]string = map[int]string{1: "张三", 2: "李四", 3: "小红"}
	fmt.Println(m[2])
	value, ok := m[4]
	if ok {
		fmt.Println(value)
	} else {
		fmt.Println("不存在")
	}

	for key, value := range m {
		fmt.Println("key == ", key, ", value == ", value)
	}

}

输出结果:

李四
不存在                    
key ==  1 , value ==  张三
key ==  2 , value ==  李四
key ==  3 , value ==  小红

3、map通过key删除某个值

package main

import "fmt"

func main() {
	var m map[int]string = map[int]string{1: "张三", 2: "李四", 3: "小红"}
	delete(m, 2)
	fmt.Println(m)
}

输出结果:

map[1:张三 3:小红]

4、map作为函数参数

package main

import "fmt"

func main() {
	var m map[int]string = map[int]string{1: "张三", 2: "李四", 3: "小红"}
	deleteMap(m)
	printMap(m)
}

func printMap(m map[int]string) {
	for v, k := range m {
		fmt.Println(v, " ", k)
	}
}

func deleteMap(m map[int]string) {
	delete(m, 2)
}

输出结果:

1   张三
3   小红

5、案例

案例:通过键盘输入一个英文字符串 统计每个字母出现的次数

package main

import "fmt"

func main() {
	var str string
	fmt.Scan(&str)
	//将字符串转成切片
	slice := []byte(str)

	//定义map进行数据存储
	//map[字符]个数
	m := make(map[byte]int)

	//var ch byte
	for i := 0; i < len(slice); i++ {
		//ch = slice[i]
		//m[ch] += 1
		//将slice切片的中的元素作为m中的key
		m[slice[i]]++
	}

	for k, v := range m {
		fmt.Printf("%c:%d\n", k, v)
	}

}

输入:asssxxsasa
结果:

a:3
s:5
x:2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值