Go学习笔记四(Map扩展)

Map 与⼯厂模式

Map 的 value 可以是一个⽅法

m := map[int]func(op int) int{} //value是一个传入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)) //打印结果:2 4 8 

实现Set

Go 的内置集合中没有 Set 实现, 可以 map[type]bool

  1. 元素的唯⼀性
  2. 基本操作
    1)添加元素
    2)判断元素是否存在
    3)删除元素
    4)元素个数
mySet := map[int]bool{}
mySet[1] = true
n := 3
if mySet[n] {
    t.Logf("%d is existing", n)
} else {
    t.Logf("%d is not existing", n)
}
mySet[3] = true
t.Log(len(mySet))
delete(mySet, 1)
n = 1
if mySet[n] {
    t.Logf("%d is existing", n)
} else {
    t.Logf("%d is not existing", n)
}
Go学习笔记四(Map扩展)_第1张图片
打印结果

你可能感兴趣的:(Go学习笔记四(Map扩展))