前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

maps

作者头像
酷走天涯
发布2019-06-11 16:32:51
5190
发布2019-06-11 16:32:51
举报

本节学习目标

  • 什么是map?
  • 如何创建map?
  • 给map添加元素
  • 获取map中的元素
  • 删除map中的元素
  • 获取map的长度
  • Map是引用类型
  • Map的相等性

下面开始学习

  • 1.什么是map?
代码语言:javascript
复制
map 是在 Go 中将值(value)与键(key)关联的内置类型。通过相应的键可以获取到值。

  • 2.如何创建map

通过向 make 函数传入键和值的类型,可以创建 map。make(map[type of key]type of value) 是创建 map 的语法。

代码语言:javascript
复制
personSalary := make(map[string]int)

可以使用下面的方式创建吗?

代码语言:javascript
复制
 var personSalary map[string]int

可以创建,但是如果你想personSalary 添加值的时候,go 会抛出一个panic ,但是第一种方式就不会出现这种异常

你可以使用下面的方式验证一下 两个声明实际创建的值是什么值

代码语言:javascript
复制
   var json1 map[string]int
    if(json1 == nil){
        fmt.Println("空")
   }

方式2 输入的是nil 方式1 不是nil


  • 3.给map添加值

声明的时候初始化 map

代码语言:javascript
复制
package main
import (  
    "fmt"
)

func main() {  
    personSalary := map[string]int {
        "steve": 12000,
        "jamie": 15000,
    }
    personSalary["mike"] = 9000
    fmt.Println("personSalary map contents:", personSalary)
}

map 添加了几个新元素

代码语言:javascript
复制
package main
import (
    "fmt"
)
func main() {
    personSalary := make(map[string]int)
    personSalary["steve"] = 12000
    personSalary["jamie"] = 15000
    personSalary["mike"] = 9000
    fmt.Println("personSalary map contents:", personSalary)
}

  • 4.获取 map 中的元素

目前我们已经给 map 添加了几个元素,现在学习下如何获取它们。获取 map 元素的语法是 map[key] 。

代码语言:javascript
复制
package main

import (
    "fmt"
)

func main() {
    personSalary := map[string]int{
        "steve": 12000,
        "jamie": 15000,
    }
    personSalary["mike"] = 9000
    employee := "jamie"
    fmt.Println("Salary of", employee, "is", personSalary[employee])
}

检查map中是否存在某个key值

代码语言:javascript
复制
value, ok := map[key]

遍历map

代码语言:javascript
复制
package main

import (
    "fmt"
)

func main() {
    personSalary := map[string]int{
        "steve": 12000,
        "jamie": 15000,
    }
    personSalary["mike"] = 9000
    fmt.Println("All items of a map")
    for key, value := range personSalary {
        fmt.Printf("personSalary[%s] = %d\n", key, value)
    }

}

  • 5.删除map中的值
代码语言:javascript
复制
package main

import (  
    "fmt"
)

func main() {  
    personSalary := map[string]int{
        "steve": 12000,
        "jamie": 15000,
    }
    personSalary["mike"] = 9000
    fmt.Println("map before deletion", personSalary)
    delete(personSalary, "steve")
    fmt.Println("map after deletion", personSalary)

}

  • 6.获取map的长度
代码语言:javascript
复制
package main

import (
    "fmt"
)

func main() {
    personSalary := map[string]int{
        "steve": 12000,
        "jamie": 15000,
    }
    personSalary["mike"] = 9000
    fmt.Println("length is", len(personSalary))

}

len 是内置函数

  • 7.map 判断

两个map 判等,需要逐个判断每个字段是否相等,但是如果判断map是否等于nil,可以直接使用map==nil来判断

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.12.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档