go语言之map的使用
2015-01-28 16:14
555 查看
go语言之map的使用
go语言的map,和c/C++语言的功能使用差不多,但是也存在很多差别。map在go语言大并发业务开发中是经常用,例如用户信息的广播等。下面看看相关使用代码
map的遍历和删除,添加
package main
import (
"fmt"
)
func delete_msg(name_age map[string]int, key string) {
delete(name_age, key)
}
func search(name_age map[string]int) {
for key, value := range name_age {
fmt.Printf("%s-%d\n", key, value)
}
}
func main() {
name_age := map[string]int{}
name_age["bojie"] = 21
name_age["csdn"] = 10
name_age["hg"] = 100
name_age["hk"] = 18
search(name_age)
delete_msg(name_age, "bojie")
fmt.Printf("删除bojie后\n")
search(name_age)
delete_msg(name_age, "bojie")
fmt.Printf("再次删除bojie后\n")
search(name_age)
fmt.Printf("再次添加hg关键字后\n")
name_age["hg"] = 101
search(name_age)
}
输出结果是以下
第一次点击编译后的记录
bojie-21 csdn-10 hg-100 hk-18 删除bojie后 csdn-10 hg-100 hk-18 再次删除bojie后 csdn-10 hg-100 hk-18 再次添加hg关键字后 csdn-10 hg-101 hk-18
再次点击重新编译后运行的记录
hk-18 bojie-21 csdn-10 hg-100 删除bojie后 csdn-10 hg-100 hk-18 再次删除bojie后 hk-18 csdn-10 hg-100 再次添加hg关键字后 csdn-10 hg-101 hk-18
通过结果发现
1.map删除不存在的关键字不会产生错误。
2.map插入存在的关键字会替换原来存在的值,这个和C++ STL的map不同,STL::map不能插入,能插入相同的是STL::set容器。
3.map的遍历通过for key, value := range name_age这样的形式去遍历。
4.map的删除通过delete进行删除
5.对,你会发现每次重新编译打开的遍历的顺序是不同的。
6.在删除函数中,我们直接传递map变量进行删除操作,但是发现,输出的结果是正确的,可发现,map是和slice一样是廉价传递。
*至于性能和STL::map相比怎么样,可以自行测试,但是你要注意一点就是STL::map带模板的,这里也影响一些速度。
相关文章推荐
- go语言的 数组、slice、map使用(转)
- Go语言中Map的基本使用
- Go语言中的Array、Slice、Map和Set使用详解
- Go语言Map的使用
- Go语言中映射表map的使用
- GO语言(六)接口使用
- go语言defer使用
- go语言使用crc32得到网络消息的校验码
- .net语言中使用MapWinGIS.ocx
- go语言接口使用
- go语言学习,使用Sublime Text 2 搭建环境
- go语言接口使用
- 使用 Go 语言和 HTML5 WebSocket 构建一个 Web 聊天室
- 论go语言中goroutine的使用
- go语言使用protobuf与c++做数据通信。
- 多核计算与并发编程(三) 使用Go语言的管道
- 在go语言里使用thrift做远程通讯
- 为什么我们要使用Go语言以及如何使用它的
- go语言中goroutine的使用
- Go语言实现的简单TCP服务及使用MySql