golang基础--map字典
map 类似python语言中的dict(字典类型),以key-value形式存储数据
Key必须是支持
==或!=比较运算的类型,不可以是函数,map或slicemap查找比线性搜素快很多,但比使用索引访问数据的类型慢100倍
map使用make()函数创建,支持
:=赋值的简单写法//基本操作
func main() {
var m map[int]string //定义一个map变量
m = map[int]string{} //第一种方式
m = make(map[int]string) //第二种方式:使用make
m := make(map[int]string) //第三种方式make直接初始化
m[1] = "ok" //赋值一对key-value
a := m[1] //获取一个key对应的value值
delete(m, 1) //删除map中的某一个key
fmt.Println(m)
fmt.Println(m)
fmt.Println(a)
fmt.Println(m)
}
/*output
map_init----> map[]
map_add----> map[1:ok]
map_get----> ok
map_del----> map[]
*/
嵌套map: 类似python中的嵌套字典,取值,赋值时需要层层递进 ,且每次赋值时需要对内层map执行make初始化。
示例代码
package main
import "fmt" func main() {
var m map[int]map[int]string //嵌套字典
m = make(map[int]map[int]string) //初始化map--最外层
m[1] = make(map[int]string) //make初始化嵌套字典,第一个键对应的map类型
m[1][1] = "ok" //key1_value1赋值
b, ok := m[1][1] //使用多返回值,第二值返回值时bool类型,如果前一个有返回值,返回true,反之返回false
fmt.Println(b, ok)
fmt.Println(m)
a, ok := m[2][1] //由于key2,对应的value2赋值前没有make初始化,所以,
fmt.Println(a, ok)
if !ok {
m[2] = make(map[int]string)
}
m[2][1] = "Good"
a, ok = m[2][1]
fmt.Println(a, ok)
fmt.Println(m)
} /*输出
a, ok---> ok true
m ---> map[1:map[1:ok]]
a, ok---> false
a, ok---> Good true //初始化后
*/
for 迭代操作,类似python,dict操作,for k,v in dic.
示例代码
//for 迭代操作slice
package main
import "fmt" func main() {
sum := make([]map[int]string, 5) //初始化一个slice,元素是map类型
for i := range sum {
sum[i] = make(map[int]string, 1)
sum[i][1] = "ok"
fmt.Println(sum[i])
}
fmt.Println(sum)
} /*输出
i=0---> map[1:ok]
i=1---> map[1:ok]
i=2---> map[1:ok]
i=3---> map[1:ok]
i=4---> map[1:ok]
sum---> [map[1:ok] map[1:ok] map[1:ok] map[1:ok] map[1:ok]]
*/
map,间接排序,通过slice,对key进行排序。
示例代码
//间接排序,对key进行排序
package main import "fmt"
import "sort" //排序包 func main() {
m := map[int]string{1: "a", 2: "b", 3: "c", 4: "d"} //这是一个map类型
s := make([]int, len(m)) //这是一个slice类型
i := 0
for k := range m {
s[i] = k
i ++
}
sort.Ints(s)
fmt.Println(s)
}
/*输出
[1 2 3 4]
*/
golang基础--map字典的更多相关文章
- GoLang基础数据类型--->字典(map)详解
GoLang基础数据类型--->字典(map)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 可能大家刚刚接触Golang的小伙伴都会跟我一样,这个map是干嘛的,是 ...
- GoLang基础数据类型---字典
Map 是 Go 中的内置类型,它将键与值绑定到一起.可以通过键获取相应的值. 如何创建 map? 可以通过将键和值的类型传递给内置函数 make 来创建一个 map.语法为:make(map[Key ...
- golang 基础 map及工厂函数
Map是一种数据结构,是一个集合,用于存储一系列无序的键值对.它基于键存储的,键就像一个索引一样,这也是Map强大的地方,可以快速快速检索数据,键指向与该键关联的值. 内部实现 Map是基于 散列表 ...
- Java基础关于Map(字典)的方法使用
Java基础关于Map(字典)的方法使用 java中一般用map与hashmap来创建一个key-value对象 使用前提是要导入方法包: import java.util.HashMap: impo ...
- Golang基础教程——map使用篇
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第7篇文章,我们来聊聊golang当中map的用法. map这个数据结构我们经常使用,存储的是key-value的键 ...
- Golang 基础之基础语法梳理 (三)
大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第三章节 Golang 基础之基础语法梳理 (一) Gol ...
- golang基础知识之encoding/json package
golang基础知识之json 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.可以去json.org 查看json标准的清晰定义.json pack ...
- Golang基础之函数
golang基础之函数 1.为什么需要函数? 有些相同的代码可能出现多次,如果不进行封装,那么多次写入到程序中,会造成程序冗余,并且可读性降低 2.什么是函数 为完成某些特定功能的程序指令集合称为函数 ...
- Golang 基础之基础语法梳理 (一)
大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第一章节 Golang 基础之基础语法梳理 (一) Gol ...
随机推荐
- Android adb获取屏幕分辨率
获取Android设备屏幕分辨率,可以采用最快捷的方式,使用ADB命令获取即可: 打印详细方式: adb shell dumpsys window displays 执行结果: Dump time : ...
- linux与unix时间戳互转
linux与unix时间戳互转 今天在消费kafka数据时遇到了这样一个问题,kafka数据中所有的数据时间戳格式都是unix上时间戳的格式,例如:1505786829101,看到这个时间戳真的是头都 ...
- webapi 用腾讯云手机短信验证码
#region 验证码相关 public class SmsSDK { #region 短信发送的必要参数 /// <summary> /// appId /// </summary ...
- Angular6 学习笔记——组件详解之模板语法
angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...
- 构造回文-C++实现
腾讯2017暑期实习生招聘笔试题……做了一个世纪才做出来 //腾讯2017暑期实习生招聘第一道题.做了一个世纪才做出来………………太菜了 /** 题目: 给定一个字符串s,你可以从中删除一些字符,使得 ...
- python寻找list中最大值、最小值并返回其所在位置
c = [-10,-5,0,5,3,10,15,-20,25] print c.index(min(c)) # 返回最小值 print c.index(max(c)) # 返回最大值
- Python(网络基础)
day33 参考:http://www.cnblogs.com/linhaifeng/articles/5937962.html IP协议: 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址, ...
- 三,mysql优化--sql语句优化之索引一
1,需求:如何在一个项目中,找到慢查询的select,mysql数据库支持把慢查询语句,记录到日志中.供程序员分析.(默认不启用此功能,需要手动启用) 修改my.cnf文件(有些地方是my.ini) ...
- firebug中html显示为灰色的原因总结
1.被设置了display:none. 2.长.宽都为0.
- Android逆向-java代码基础
作者:I春秋作家——HAI_ 0×00 前言 看这篇可以先看看之前的文章,进行一个了解.Android逆向-java代码基础(1)Android逆向-java代码基础(2) 之前看到有大佬用smali ...