golang maps in action

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
	var mypeople = make(map[string]string)
	mypeople["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)
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值