
Go Map声明、元素访问与遍历
Map的声明
Map的声明相当于其他语言的键值队,通常通过
map[key_type]value_type
的方式声明。如下举例:
m := map[string]int{"one": 1, "two": 2,"three": 3}
m1 := map[string]int{}
m1["one"] = 1
m2 := make(map[string]int, 10)
//这里的10只能是cap不能是len
我们可以通过下面的代码,对map做基本的了解
package map_test
import "testing"
func TestInitMap(t *testing.T) {
m1 := map[int]int{1: 1, 2: 4, 3: 9}
t.Log(m1[2])
t.Logf("len m1=%d", len(m1))
m2 := map[int]int{}
m2[4] = 16
t.Logf("len m2=%d", len(m2))
m3 := make(map[int]int, 10)
// cap 不支持map键值对
t.Logf("len m3=%d", len(m3))
}
判断非空
从刚刚的代码示例,我们知道了当不赋值时返回的不是nil而是0。当其键中值的本身为0时,我们该如何判断出它赋值还是没有赋值。接下来的案例就会解决这个问题。
func TestAccessNotExistingKey(t *testing.T) {
m1 := map[int]int{}
t.Log(m1[1])
m1[2] = 0
t.Log(m1[2])
// 判断值存在还是空 。(v是值,ok是判断)
if v, ok := m1[3]; ok {
t.Logf("Key 3's value is %d", v)
} else {
t.Logf("Key 3 is not existing.")
}
}
遍历Map
func TestTravelMap(t *testing.T) {
m1 := map[int]int{1: 1, 2: 4, 3: 9}
for k, v := range m1 {
t.Log(k, v)
}
}
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
657
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术