Map类型

Map类型

在C++/Java中,map一般都以库的方式提供,比如在C++中是STL的std::map<>,在C#中是Dictionary<>,在Java中是Hashmap<>,在这些语言中,如果要使用map,事先要引用相应的库。而在Go中,使用map不需要引入任何库,并且用起来也更加方便。

1.变量声明

map的声明基本上没有多余的元素,比如:
var myMap[String] int 

其中,myMap是声明的map的变量名,String是键key的类型,int是value所放的值的类型。


2.创建

我们可以使用Go语言内置的函数make()来创建一个新map。下面的这个例子创建了一个键类型为string、值类型为int的map:
myMap = make(map[String] int)

//创建了一个初始存储能力为100的map:
myMap = make(map[String] int,100)
复杂一点的代码:
// PersonInfo是一个包含个人详细信息的类型
type PersonInfo struct { 
 ID string
 Name string
 Address string
}

myMap = map[string] PersonInfo{ 
 "1234": PersonInfo{"1", "Jack", "Room 101,..."}, 
}//"1234"是键值

3.元素赋值

同C++一样,键和值对应即可:
myMap["1234"] = PersonInfo{"1","Jack","Room 101"...}

4.元素删除

Go语言提供了一个内置函数delete(),用于删除容器内的元素。下面我们简单介绍一下如何用delete()函数删除map内的元素:
delete(myMap, "1234")

上面的代码将从myMap中删除键为“1234”的键值对。如果“1234”这个键不存在,那么这个调用将什么都不发生,也不会有什么副作用。但是如果传入的map变量的值是nil(表示空,与null还是有很大不同的),该调用将导致程序抛出异常(panic)


5.元素查找

在Go语言中,要从map中查找一个特定的键,可以通过下面的代码来实现:
value, ok := myMap["1234"] 
if ok { // 找到了
 // 处理找到的value 
}

判断是否成功找到特定的键,不需要检查取到的值是否为nil,只需查看第二个返回值ok,这让表意清晰很多。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值