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`映射表,实现了数据的分类存储。  - **映射表操作**:展示了如何查找映射表中的值以及检查键是否存在。  - **数组映射的使用**:展示了如何利用数组映射来存储和处理数据。  - **切片与映射结合**:通过切片和映射结合的方式,实现了数据的动态存储与访问。
上一篇:C # HTTP支持跨域请求
下一篇:How to Rate Limit HTTP Requests

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月26日 09时11分35秒