var a [2]int # 仅定义
var b =[2]int{1,2} # 定义并初始化
c :=[3]int{1,2,3}
d :=[...]int{1,2,3,4} # 可以省略长度而采用 `...` 的方式, Go 会自动根据元素个数来计算长度
e :=[2][4]int{[4]int{1,2,3,4},[4]int{5,6,7,8}} # 定义并初始化二位数组
f :=[2][4]int{{1,2,3,4},{5,6,7,8}} # 上面的声明可以简化,直接忽略内部的类型
2. 如何初始化slice
var a []int # 仅定义
var b =[]int{1,2} # 定义并初始化
c :=[]int{1,2,3}
d := c[:1] # 从已有Slice声明一个Slice,等价 d := c[0:1],包含元素1, 2
e := c[1:] # 等价 e :=[1:2], 包含元素2,3
f :=[:] # 等价 f :=[0:2], 包含元素1,2,3
3. 如何初始化map
var a map[string]int # 声明key是字符串,值为int的map, 需要在使用之前使用make 初始化
b :=make(map[string]int) # 声明并初始化
c :=map[string]int{"a":1,"b":2} # 声明并初始化
4. 如何实现Set集合效果
# 定义一个类型为string的Set集合:
var set =map[string]struct{}{}
# 判断Set集合是否存在a:if_, ok := set["a"]; ok {
fmt.Println("set contains a")}
# 结果:ok=false
# 先传入b,再判断Set集合是否存在b:
set["b"]=struct{}{}if_, ok := set["b"]; ok {
fmt.Println("set contains b")}
# 结果:ok=true
# 遍历Set集合:
for s :=range set {
fmt.Println(s)}