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的更多相关文章
随机推荐
- grub2 详解
grub2详解(翻译和整理官方手册) 分类: Linux 基础篇,Linux 杂项 本文原创地址在博客园:https://www.cnblogs.com/f-ck-need-u/archive ...
- javax.el.PropertyNotFoundException: Property 'imgUrl' not found on type java.lang.String
严重: Servlet.service() for servlet jsp threw exception javax.el.PropertyNotFoundException: Property ' ...
- nexus yum 私服集成
nexus 集成了 yum 私服使用起来还是比较简单的 配置 yum proxy 实际使用我们可能需要配置centos 以及epel 的源 centos可以用http://mirror.cento ...
- php 自定义函数大全
1. call_user_func和call_user_func_array 以上两个函数以不同的参数形式调用函数.见如下示例: <?php class demo{ public static ...
- windows下php7安装redis扩展
windows下php7安装redis扩展windows下开发用的wamp集成的环境,想装个php-redis扩展.php_redis.dll下载地址:https://pecl.php.net/pac ...
- settimeout()在IE8下参数无效问题解决方法
遇到这个问题,setTimeout(Scroll(),3000); 这种写法在IE8 下 不能够执行,提示参数无效, setTimeout(function(){Scroll()},3000);这种方 ...
- win7下openvpn不能自动加路由
在win7下用openvpn一直报这个错误,配置文件里的路由一直加不上,但是可以拔得上服务器,只好手工加路由.Thu Apr 07 23:13:51 2011 Notified TAP-Win32 d ...
- Form中的keypress事件不能用
Form中的keypress事件不能用 编写人:CC阿爸 2015-4-8 近期在修改系统时,想给一画面增加一个组合键功能,但在form_keypress事件中加入代码,但无论如何也不能触发该动作. ...
- 为什么JSP会比Beetl慢
转自:http://my.oschina.net/xiandafu/blog/475740 JSP是预编译成class的,然后模板渲染里比Beetl慢很多,文章从JSP静态文本处理不足,以及JSTL实 ...
- elasticsearch RESTful
一 .索引(index) 1. 创建索引 (1)第一种方式 PUT twitter { "settings" : { "index" : { "num ...