GO语言学习笔记——map_2

GO语言学习笔记——map_2

map的小用法记录:

1、factory

go中map的value可以是一个匿名函数,因而利用这一点可以简单实现工厂模式

factory:=make(map[int]func(a int,b int)int,3)
factory[1]= func(a int, b int)int {
   return a+b
}
factory[2]= func(a int, b int)int {
   return a*a*a-b*b*b
}
factory[3]= func(a int, b int)int {
   return int(math.Floor(float64(a)/float64(b)+0.5))
}
a,b:=77,88
println("a与b的和为:",factory[1](a,b))
println("a的三次方与b的三次方的差为:",factory[2](a,b))
println("a除以b的值为:",factory[3](a,b))//四舍五入了,巧妙得运用了math库的Floor

输出:

a与b的和为: 165
a的三次方与b的三次方的差为: -224939
a除以b的值为: 1

2、set

go中不像python有set,但是set还是比较重要的,尤其是在去重上的应用,map可以实现简单的set

func exists(set map[string]bool,item string)  {
   if(set[item]){
      println(item,"存在")
   }else {
      println(item,"不存在")
   }//判断是否存在的函数
set1:=map[string]bool{}
set2:=map[string]bool{}
set1["python"]=true
exists(set1,"python")
exists(set1,"golang")
list:=[...]string{"python","golang","python"}
list1:=[]string{}
for _,value:=range list{
   set2[value]=true
}
for key:=range set2{
   list1=append(list1,key)
}
fmt.Println(list1)

上面代码实现了数组去重,用新的切片list1返回去重后的list
输出:

python 存在
golang 不存在
[python golang]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值