golang中遍历汇总
直接上例子:
例子1:
package main import(
"fmt"
) func main(){ a := map[string]string{
"alice":"11",
"bob":"29",
"zhangsan":"29",
"wang":"35",
} tmpRs := map[string][]string{}
for k1, v1 := range a {
tmpRs[v1] = append(tmpRs[v1], k1)
} fmt.Printf("tmpRs.........=%v",tmpRs)
}
根据value,把Value相同的放在一起,结果放在一个大map里.
执行结果如下:
> tmpRs.........=map[11:[alice] 29:[bob zhangsan] 35:[wang]]
例子2:
// json.go
package main import (
"encoding/json"
"fmt"
"strconv"
) type FakeUserInfo struct {
Push_Type string `json:"push_type"` // 渠道
Third_Token string `json:"third_token"` // token
User_id string `json:"user_id"` // 用户ID
} // return: map[int]map[string][]string :{0: {"Users":["2","3","4"],"Tokens":["234","234"]}}
func main() {
var m FakeUserInfo
var tmpRs = map[int]map[string][]string{} str := `{"push_type": "0","user_id": "fake_22222","third_token": "22222"}` json.Unmarshal([]byte(str), &m)
fmt.Println(m)
fmt.Println("pushType......",m.Push_Type)
fmt.Println("thirdToken......",m.Third_Token)
fmt.Println("userId......",m.User_id) if len(m.Push_Type) == 0 {
return
}
i, _ := strconv.Atoi(m.Push_Type) if tmpRs[i] == nil {
tmpRs[i] = map[string][]string{}
}
if tmpRs[i]["Users"] == nil {
tmpRs[i]["Users"] = []string{}
}
if m.Third_Token == "" || m.User_id == "" {
return
}
tmpRs[i]["Users"] = append(tmpRs[i]["Users"], m.User_id)
if tmpRs[i]["Tokens"] == nil {
tmpRs[i]["Tokens"] = []string{}
}
tmpRs[i]["Tokens"] = append(tmpRs[i]["Tokens"], m.Third_Token) fmt.Printf("tmpRs.........=%v",tmpRs)
}
把结果放在一个复合map中.
执行结果如下:
> {0 22222 fake_22222}
> pushType...... 0
> thirdToken...... 22222
> userId...... fake_22222
> tmpRs.........=map[0:map[Users:[fake_22222] Tokens:[22222]]]
golang中遍历汇总的更多相关文章
- 【GoLang】golang 最佳实践汇总
最佳实践 1 包管理 1.1 使用包管理对Golang项目进行管理,如:godep/vendor等工具 1.2 main/init函数使用,init函数参考python 1.2.1 main-> ...
- 六、golang中的结构体和方法、接口
结构体: 1.用来自定义复杂数据结构 2.struct里面可以包含多个字段(属性) 3.struct类型可以定义方法,注意和函数的区分 4.strucr类型是值类型 5.struct类型可以嵌套 6. ...
- Golang JSON操作汇总
直接把结构体编码成json数据 package main import ( "encoding/json" "fmt" _ "os" ) t ...
- golang中的RPC开发-2
RPC简介 远程过程调用(Remote Procedure Call,RPC)是一个计算机通信协议 该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程 如果 ...
- golang中的标准库context解读
简介 golang 中的创建一个新的 goroutine , 并不会返回像c语言类似的pid,所有我们不能从外部杀死某个goroutine,所有我就得让它自己结束,之前我们用 channel + se ...
- golang中数组指针与指针数组的区别实现
指针数组和数组的指针,指的是两个不同的东西. 指针数组是有指针组成的数组,数组的指针是一个数组的指针. package main import "fmt" const MAX ...
- golang中的反射reflect详解
先重复一遍反射三定律: 1.反射可以将"接口类型变量"转换为"反射类型对象". 2.反射可以将"反射类型对象"转换为"接口类型变量 ...
- Golang中常用的代码优化点
Golang中常用的代码优化点 大家好,我是轩脉刃. 这篇想和大家聊一聊golang的常用代码写法.在golang中,如果大家不断在一线写代码,一定多多少少会有一些些代码的套路和经验.这些经验是代表你 ...
- Java中遍历Map集合的四种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
随机推荐
- Django rest-framework框架-序列化
序列化: 第一版: class RolesView(APIView): def get(self,request,*args,**kwargs): roles = models.Role.object ...
- Python的global指令的作用
Python的global指令的作用 学过其他常用编程语言的同学一定清楚,Python是一个语法非常宽容的语言.它是个变量的定义可以省略.直接赋值.根据赋值结果自动确定变量类型的弱类型语言. 但是这样 ...
- 微信小程序编译提示tabar.iconPath 文件不存在
tabBar.list[0].iconPath 文件不存在 明明是按路径放了本地图片的,却依然显示路径不存在 需要把路径的图片转移到编译后的weapp文件中相同路径下的img文件中 本地正常路径 粘贴 ...
- 在线播放mp4
在线播放mp4 1.准备好支持再网页上播放的mp4格式 AVC(h264) 格式的mp4 2.用ckplayer控制播放 (1)到ckplayer下载js.如:http://www.ckplayer. ...
- JavaSpring【一、概述】
主要内容 JavaSpring[一.概述] JavaSpring[二.IOC] JavaSpring[三.Bean] JavaSpring[四.Bean管理注解实现] JavaSpring[五.AOP ...
- Linux文件的管理
创建:touch vim/vi echo重定向 cat touch 管理: atime mtime touch 文件名 //如果文件不存在,不创建文件 删除:mv /tmp find |x ...
- springboot Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
报错如下: 在请求目标中发现无效字符.有效字符在RFC 7230和RFC 3986中定义. 原因是Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证. 就是 ...
- Linux--磁盘检查简单介绍
系统莫名其妙的掉电或磁盘发生问题非常可能导致文件系统的错乱,文件系统若发生错乱,可以使用fsck(file system check)命令进行检查. 使用权限:root用户 选项和参数: -a:检测到 ...
- python 之math模块
一.math 简介 import math # 导入模块 ret = dir(math) # 查看所有函数名列表 print(ret) # ['__doc__', '__loader__', '__n ...
- API开发之接口安全(四)----sign的唯一性
r如何解决sign的唯一性呢,在以往的经验中,我们都是通过标识来确定 如果有 那就用过如果没有那就是没用过 当然我们还需要将sign存储起来 这样我们才能更好的去判断他是否用过 存储的话 我们有几种方 ...