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的更多相关文章
随机推荐
- openGL之着色器程序的使用
#define GLEW_STATIC #include <GL\glew.h> #include <GLFW\glfw3.h> #include<iostream> ...
- Swift 标签控制器(tabbar添加提醒和控制器)
// Override point for customization after application launch. //初始化window, 大小为设备物理大小 self.window = U ...
- iis6 , URL重写HTM文件名后,出现真实的HTM文件不能访问的解决
服务器环境是windows 2003 IIS6 在web.config文件中加入 1.在<compilation debug="true"> 节点加入 <buil ...
- Ext.js 之MVC
Ext.js 4.0之MVC
- hibernate映射xml文件配置之一对多,多对多
一对多配置 [1]班级和学生模型 --->班级可容纳多个学生 --->学生只能属于一个班级 [2]一对多配置中的关系维护(inverse) --->一端放弃关系的维护 ---> ...
- eclipse工程 'cocostudio/CocoStudio.h' file not found
android.mk里有这样配置: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) $(call import-add-path,$(LOCAL_ ...
- Intellij Idea上Spring Boot编译报错:Error:(3, 32) java: 程序包org.springframework.boot不存在
很尴尬,为了使用Spring Boot的Initializr,特意下了个Intellij Idea,刚按提示新建一个Spring Boot的Maven项目后,就出现红叉叉了.因为IDE是新的,开始是M ...
- linux中查看nginx、apache、php、mysql配置文件路径的方法
如何在Linux中查看nginx.apache.PHP.MySQL配置文件路径了,如果你接收一个别人配置过的环境,但没留下相关文档.这时该怎么判断找到正确的加载文件路径了.可以通过以下来判断1.判断a ...
- 如何查看oracle表空间是否自动扩展
select file_name,autoextensible,increment_by from dba_data_files
- X.509证书的编码及解析:程序解析以及winhex模板解析
一.证书的整体结构:证书内容.签名算法.签名结果. 用ASN.1语法描述如下: Certificate::=SEQUENCE{ tbsCertificate TBSCertificate, signa ...