博客
关于我
golang maps in action
阅读量:619 次
发布时间:2019-03-13

本文共 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`映射表,实现了数据的分类存储。  - **映射表操作**:展示了如何查找映射表中的值以及检查键是否存在。  - **数组映射的使用**:展示了如何利用数组映射来存储和处理数据。  - **切片与映射结合**:通过切片和映射结合的方式,实现了数据的动态存储与访问。

转载地址:http://arboz.baihongyu.com/

你可能感兴趣的文章
SpringCloud-Eureka报错 Error creating bean with name解决
查看>>
Thymeleaf 生成下标,索引,使用Stat变量
查看>>
全局变量初始化顺序的不确定性引发的bug
查看>>
ValueError: Unexpected end of file.
查看>>
六、登录(二)
查看>>
初始微服务---Springcloud发展【第一期】
查看>>
RAFT 拜占庭将军 共识算法
查看>>
UE4 错误列表 error码(只记录我遇到的情况,持续添加,未完成)
查看>>
【.net+jquery】绘制自定义表单(含源码)
查看>>
could not initialize proxy - no Session (SSH)
查看>>
cmd编译.java文件 : java:720: 错误: 编码GBK的不可映射字符 Why ? ? ? ?
查看>>
【Jquery】获取当前窗口的宽度值/高度值
查看>>
Android 架构组件 – 让天下没有难做的 App
查看>>
启动MongoDB出现1053错误
查看>>
Gym 102770 B-Bin Packing Problem 2020浙江省省赛 (线段树 + set)
查看>>
centOS7.6安装nginx
查看>>
[python复习6]正则表达式
查看>>
Flask操作SQLAlchemy
查看>>
JavaScript和Java重要的相异点
查看>>
网络对抗技术-Exp2-后门原理与实践 20181314
查看>>