
golang maps in action
发布日期:2021-05-16 21:14:03
浏览次数:17
分类:精选文章
本文共 2409 字,大约阅读时间需要 8 分钟。
package main
import "fmt"
func main() { type Person struct { Name string Likes []string } var people []*Person likes := make(map[string][]*Person) for _, p := range people { for _, l := range p.Likes { likes[l] = append(likes[l], p) } } for _, p := range likes["cheese"] { fmt.Println(p.Name, "likes cheese.") } fmt.Println(len(likes["bacon"]), "people like bacon.") type Student struct { Name string Likes []string } s := make([]string, 1) students := Student{ Name: "your name", Likes: append(s, "footballl", "basketball"), } /*students = Student{ Name: "myname", }*/ sm := map[string]interface{}{ "name": students.Name, "likes": students.Likes, } fmt.Println("sm", sm) m := make(map[string]int) m["k1"] = 7 m["k2"] = 13 mypeople := map[string]string{ "name": "your name", } me, exists := mypeople["name"] fmt.Println("me", me, "exists", exists) // 初始化 + 赋值一体化 m3 := map[string]string{ "a": "aa", "b": "bb", } // ========================================== // 查找键值是否存在 if v, ok := m3["a"]; ok { fmt.Println(v) } else { fmt.Println("Key Not Found") } // array of map init m4 := []map[string]interface{}{ map[string]interface{}{ "key1": "valu1", "key2": "value2", }, map[string]interface{}{ "key1": "valu3", "key2": "value4", }, } fmt.Println(m4) fmt.Println("m4[1]", m4[1]["key1"]) //map value is a array of map m5 := map[string]interface{}{ "nest": m4, } fmt.Println(m5) m6 := make([]map[string]interface{}, 0) a := []string{"value1", "value2"} for i := 0; i < 2; i++ { m6 = append(m6, map[string]interface{}{"key1": a[i]}) } fmt.Println("m6", m6) m7 := map[string][]string{ "key1": a, } fmt.Println("m7:", m7) }`` ### 技术说明 - **结构体定义**:首先定义了`Person`结构体,包含`Name`和`Likes`字段。然后定义了`Student`结构体,用于存储学生信息。 - **循环处理**:通过循环遍历`people`和`likes`映射表,实现了数据的分类存储。 - **映射表操作**:展示了如何查找映射表中的值以及检查键是否存在。 - **数组映射的使用**:展示了如何利用数组映射来存储和处理数据。 - **切片与映射结合**:通过切片和映射结合的方式,实现了数据的动态存储与访问。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月26日 09时11分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Hadoop学习笔记—Yarn
2019-03-06
Jenkins - 部署在Tomcat容器里的Jenkins,提示“反向代理设置有误”
2019-03-06
wxWidgets源码分析(3) - 消息映射表
2019-03-06
wxWidgets源码分析(5) - 窗口管理
2019-03-06
wxWidgets源码分析(8) - MVC架构
2019-03-06
wxWidgets源码分析(9) - wxString
2019-03-06
[梁山好汉说IT] 梁山好汉和抢劫银行
2019-03-06
[源码解析] 消息队列 Kombu 之 基本架构
2019-03-06
[源码分析] 消息队列 Kombu 之 启动过程
2019-03-06
wx.NET CLI wrapper for wxWidgets
2019-03-06
Powershell中禁止执行脚本解决办法
2019-03-06
OO_Unit2 多线程电梯总结
2019-03-06
04_Mysql配置文件(重要参数)
2019-03-06
JavaSE总结
2019-03-06
Python IO编程
2019-03-06
使用 TortoiseGit 时,报 Access denied 错误
2019-03-06
基于 HTML5 WebGL 的污水处理厂泵站自控系统
2019-03-06