- package main
- import (
- "encoding/json"
- "fmt"
- )
- func main() {
- //第一种声明
- var language map[string]string
- language = make(map[string]string, 10) //在使用map前,需要先make,make的作用就是给map分配数据空间
- language["1"] = "C#"
- language["2"] = "go"
- language["3"] = "python"
- fmt.Println(language) //map[1:C# 2:go 3:python]
- //第二种声明 相比上面的第一种,少了 var声明
- language2 := make(map[string]string)
- language2["1"] = "C#"
- language2["2"] = "go"
- language2["3"] = "python"
- fmt.Println(language2) //map[1:C# 2:go 3:python]
- //第三种声明 直接初始化
- language3 := map[string]string{
- "1": "C#",
- "2": "go",
- "3": "python",
- }
- fmt.Println(language3) //map[1:C# 2:go 3:python]
- language4 := make(map[string]map[string]string) // 这里键值对:string => map[string]string,简单理解就是[string][string]=>string
- language4["python"] = make(map[string]string, 2)
- language4["python"]["id"] = "1"
- language4["python"]["desc"] = "python是世界上最好的语言"
- language4["go"] = make(map[string]string, 2)
- language4["go"]["id"] = "2"
- language4["go"]["desc"] = "go是世界上最好的语言"
- fmt.Println(language4) //map[go:map[desc:go是世界上最好的语言 id:2] python:map[desc:python是世界上最好的语言 id:1]]
- //增删改查
- val, key := language4["java"] //查找是否有java这个子元素
- if key {
- fmt.Println(val)
- } else {
- fmt.Println("找不到key")
- }
- //language4["go"]["id"] = "3" //修改了go子元素的id值,注意这里是修改,不要理解成是追加元素
- //language4["go"]["name"] = "golang性能最佳" //增加go元素里的name值
- //delete(language4, "python") //删除了python子元素
- //fmt.Println(language4)
- mjson, _ := json.Marshal(language4)
- mString := string(mjson)
- fmt.Printf("json String:%s", mString)
- }