go_Map
go语言中map使用哈希表,必须可以比较相等
除了slice,map,function的内建类型都可以作为key
Struct类型不包括上述字段,也可作为key
map中的key是无序的
- package main
- import (
- "fmt"
- "sort"
- )
- var (
- barVal = map[string]int{"alpha": 34, "bravo": 56, "charlie": 23,
- "delta": 87, "echo": 56, "foxtrot": 12,
- "golf": 34, "hotel": 16, "indio": 87,
- "juliet": 65, "kili": 43, "lima": 98}
- )
- func main() {
- m:=map [string]string {
- "name":"fyf",
- "course":"golang",
- "site":"imooc",
- "quality":"notbad",
- }
- m2:=make(map[string]int)//空map一般就用make定义 m2==empty map
- var m3 map[string]string//m3 == nil
- fmt.Println(m,m2,m3)
- fmt.Println("")
- //map的遍历
- fmt.Println("map的遍历")
- for k,v :=range m{
- fmt.Println(k,v)
- }
- fmt.Println("")
- //mao的操作
- fmt.Println("得到value")
- //如果map中的key不存在,则会得到一个nil值
- courseName:=m["course"]
- fmt.Println(courseName)
- //判断key是否存在map中
- courseName2,ok:=m["course"]
- fmt.Println(courseName2,ok)
- if couseName,ok:=m["couse"]; ok{
- fmt.Println(couseName)
- }else {
- fmt.Println("key 不存在")
- }
- fmt.Println("")
- fmt.Println("删除value")
- name,ok:=m["name"]
- fmt.Println(name,ok)
- delete(m,"name")
- name,ok = m["name"]
- fmt.Println(name,ok)
- fmt.Println("unsorted:")
- for k, v := range barVal {
- fmt.Printf("Key: %v, Value: %v / ", k, v)
- }
- keys := make([]string, len(barVal))
- i := 0
- for k, _ := range barVal {
- keys[i] = k//往数组里面放值
- i++
- }
- fmt.Println("")
- fmt.Println("")
- fmt.Println(keys)
- sort.Strings(keys)
- fmt.Println()
- fmt.Println("sorted:")
- for _, k := range keys {
- fmt.Printf("Key: %v, Value: %v / ", k, barVal[k])
- }
- fmt.Println("")
- fmt.Println("")
- items := make([]map[int]int, 5)
- for i:= range items {
- items[i] = make(map[int]int, 1)
- items[i][1] = 2//key is 1, value is 2
- }
- fmt.Printf("Version A: Value of items: %v\n", items)
- }
go_Map的更多相关文章
随机推荐
- android中LayoutInflater.from(context).inflate的分析
在应用中自定义一个view,需要获取这个view的布局,需要用到 (LinearLayout) LayoutInflater.from(context).inflate(R.layout.conten ...
- HDU2888 Check Corners(二维RMQ)
有一个矩阵,每次查询一个子矩阵,判断这个子矩阵的最大值是不是在这个子矩阵的四个角上 裸的二维RMQ #pragma comment(linker, "/STACK:1677721600&qu ...
- flow flow-typed 定义简单demo
flow-typed 安装 全局 npm install -g flow-typed 测试代码 一个简单全局函数 目录根目录 flow-typed userLibDef.js declare func ...
- sysstat工具
sysstat工具可以监控系统的IO,CPU,SWAP,LOAD,NETWORK,DISK 安装后,系统会生成定时任务脚本 路径:/etc/cron.d/sysstat 内容: # Run syste ...
- CentOS7.2 安装redis 3.0.6集群
1.环境确认 a.系统版本查看 [hadoop@p168 ~]$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) b.安装依 ...
- GCC 三
前记: 经常浏览博客园的同学应该会觉得本文有标题党之嫌,这个标题的句式来自于MiloYip大牛的大作<C++强大背后>,在此,向Milo兄致意. GCC,全称GNU Compiler Co ...
- android 点击返回键 以及 加载activity 生命周期 记录。。。,一目了然
简叙 Activity 生命周期及android 返回按钮捕捉 @Override protected void onPostCreate(Bundle savedInstanceState) { ...
- [正经分析] DAG上dp两种做法的区别——拓扑序与SPFA
在下最近刷了几道DAG图上dp的题目. 要提到的第一道是NOIP原题<最优贸易>.这是一个缩点后带点权的DAG上dp,它同时规定了起点和终点. 第二道是洛谷上的NOI导刊题目<最长路 ...
- Java--普通代码块静态代码块执行顺序
class B { public B() { super(); System.out.println("构造器B"); } { System.out.println("普 ...
- HDU 2201 熊猫阿波的故事
熊猫阿波的故事 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...