博客
关于我
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/

你可能感兴趣的文章
STM32F103ZET6---复位
查看>>
STM32驱动0.96寸oled液晶屏
查看>>
【Altium Designer21】工作栏中文解析
查看>>
[87]用secureCRT连接虚拟机中的Ubuntu系统,出现“远程主机拒绝连接”错误
查看>>
[206]如何解决python升级后yum报错
查看>>
Android 布局优化之<include/><merge/>和 <ViewStub>
查看>>
Shell脚本防DNS攻击检测并删除肉机IP
查看>>
升级Centos7.5的默认Python版本至最新
查看>>
如何在VSCode中定制JSON的IntelliSense
查看>>
傅里叶变换时域和频域之间的对应关系
查看>>
椭圆曲线的定义
查看>>
多代理区块链框架客户端的操作
查看>>
RSA操作中的公钥和私钥的生成
查看>>
C#从1打印到100再打印到1-递归的应用
查看>>
go语言中类的继承和方法的使用
查看>>
caffe运行mnist例子时候出现的一些问题
查看>>
Ubuntu 修改权限的操作
查看>>
caffe训练的时候遇到的text-format 错误解决方案。
查看>>
Java 8新特性(一):Lambda表达式
查看>>
ZOJ问题(坑死了)
查看>>