Go基础--07 map

本文介绍了Go语言中map的基本操作,包括初始化、访问不存在的键、遍历以及用作工厂模式和实现简单的集合(set)。示例展示了如何声明、修改、删除map元素,以及如何利用map实现函数工厂和set数据结构。测试用例涵盖了map的常见用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

map声明

map声明后为空时候返回0

package my_map

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) //10 cap
	t.Logf("len m3=%d",len(m3))
}

func TestAccessNotExistingKey(t *testing.T){
	m1 := map[int]int{}
	t.Log(m1[1])
	m1[2] = 0
	t.Log(m1[2])
	if _,ok := m1[3];ok{
		t.Logf("key 3 is not exists %d",m1[3])
	}else{
		t.Logf("key 3 is not existing %d",m1[3] ) //空返回0
	}
}

func TestTravelMap(t *testing.T){
	m1 := map[int]int{1:2,2:3,3:4}
	for k,v := range m1{
		t.Log(k,v)
	}
}

map与工厂模式

package my_map

import "testing"

func TestMapFactor(t *testing.T){
	m:=map[int]func(op int)int{}
	m[1] = func(op int) int {
		return op
	}
	m[2] = func(op int) int {
		return op * op
	}
	m[3] = func(op int) int {
		return op * op * op
	}
	t.Log(m[1](2),m[2](2),m[3](2))
}

//实现set
func TestMapForSet(t *testing.T){
	mySet := map[int]bool{}
	mySet[1] = true
	n := 1
	if mySet[n]{
		t.Logf("%d is exists",n)
	}else{
		t.Logf("%d is not existing",n)
	}
	//mySet[3] = true
	t.Log(len(mySet))
	delete(mySet,1)
	t.Log(len(mySet))
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值