Golang——映射

映射

大体上来说,Go 中的映射是一个哈希表,是键值对的集合。 映射中所有的键都必须具有相同的类型,它们的值也是如此。 不过,可对键和值使用不同的类型。 例如,键可以是数字,值可以是字符串。 若要访问映射中的特定项,可引用该项的键。

声明和初始化映射

创建一个包含学生姓名和年龄的映射:

package main
​
import "fmt"func main() {
    studentsAge := map[string]int{
        "john": 32,
        "bob":  31,
    }
    fmt.Println(studentsAge)
}

运行上述代码时,你会看到以下输出:

map[bob:31 john:32]

映射是动态的。 创建项后,可添加、访问或删除这些项。 让我们来了解这些操作。

添加项

如果不想使用项来初始化映射,可使用内置函数 make() 在上一部分创建切片。 可使用以下代码创建空映射(注意与studentsAge := map[string]int得到的nil映射区分开):

studentsAge := make(map[string]int)
studentsAge["john"] = 32
studentsAge["bob"] = 31
fmt.Println(studentsAge)

删除项

若要从映射中删除项,请使用内置函数 delete()。 下例演示了如何从映射中删除项:

package main
​
import "fmt"func main() {
    studentsAge := make(map[string]int)
    studentsAge["john"] = 32
    studentsAge["bob"] = 31
    delete(studentsAge, "john")
    fmt.Println(studentsAge)
}

运行代码时,你会获得以下输出:

map[bob:31]

映射中的循环

使用range即可遍历整个映射。

请注意可如何将键和值信息存储在不同的变量中。 在本例中,我们将键保存在 name 变量中,将值保存在 age 变量中。 因此,range 会首先生成项的键,然后再生成该项的值。

for name, age := range studentsAge {
        fmt.Printf("%s\t%d\n", name, age)
    }

可使用 _ 变量忽略其中任何一个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值