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的更多相关文章

随机推荐

  1. Sublime 中文标题乱码

    ---title:Sublime 中文标题乱码--- #markdown语法(非Github Flavored) #解决办法: 在用户设置里添加一项,强制不根据 dpi 缩放dpi_scale: 1. ...

  2. facade外观模式

    通过买股票与通过基金买股票引出外观模式: package com.disign.facade; /** * Created by zhen on 2017-05-18. */ public class ...

  3. 高级浏览器-SRWare Iron 29.0.1600.0 版本发布

    SRWare Iron是德国一安全公司srware改造的Chrome(铬)命名为铁(iron)的浏览器.于2008年9月18日首次发布. 据官方介绍,Iron浏览器砍掉了Chromium原程序中的很多 ...

  4. Beta阶段第1周/共2周 Scrum立会报告+燃尽图 04

    作业要求与 [https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284] 相同 版本控制:https://git.coding.net/li ...

  5. 作业要求20181023-4 Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 01

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284] 版本控制:https://git.coding.net/liuyy08 ...

  6. Gym 100712L Alternating Strings II(单调队列)

    题目链接 Alternating Strings II 题意是指给出一个长度为n的01串,和一个整数k,要求将这个01串划分为很多子串(切很多刀),使得每个子串长度不超过k,且每个字串不是01交替出现 ...

  7. python api接口认证脚本

    import requests import sys def acces_api_with_cookie(url_login, USERNAME, PASSWORD, url_access):     ...

  8. 三:背包DP

    01背包问题描述 已知:有一个容量为V的背包和N件物品,第i件物品的重量是weight[i],收益是cost[i]. 限制:每种物品只有一件,可以选择放或者不放 问题:在不超过背包容量的情况下,最多能 ...

  9. Centos下telnet的安装和配置

    Centos下telnet的安装和配置 首先为Centos配置地址(192.168.0.1/24) 一.查看本机是否有安装telnetrpm -qa | grep telnetrpm -q telne ...

  10. 【转】MFC String处理

    原文网址:http://www.cnblogs.com/lisuyun/p/3399232.html C/C++获取文件后缀名并且比较 以下这段是VC中过去文件后缀名的方法 1.CString Get ...