一、数组(array)
数组是具有相同类型的一组长度固定的数据序列,这种类型可以是任意的基本数据类型或复合数据类型及自定义类型
数组的特点:
@1 数组是值类型,而不是引用类型。
@2 数组当做参数传递时,是值传递,原数组不变。
# method 1
var nums1 = [5]int{3, 4, 5, 6, 7}
# method 2
var nums2 = [...]int{8, 8, 8, 8}
# 遍历数组1
for i :=0; i < len(nums1); i++ {
fmt.Println(a[i], "\t")
}
# 遍历数组2
for _, value := range nums1 {
fmt.Println(value, "\t")
}
二、切片(slice)
切片是引用数据类型
# 声明切片1
var slice1 []int
# 声明切片2
var slice2 []int = make([]int, 10)
或者
slice2 := make([]int, 10)
# 切片初始化1
s := []int{1, 2, 3}
# 切片初始化2 通过截取数据
s := nums1[:]
三、集合(map)
map也是一种引用数据类型
1. 定义时初始化
m1 := map[string]float32{"Go": 20}
或
var m1 = map[string]string{"Go": "20"}
2. 创建集合后再赋值
m2 := make(map[string]string)
m2["Go"] = "Good"
m2["C++"] = "Nice"
# interface{} 类型 值可以是任意类型
m3 := map[string]interface{}{"a": 20, "b": "haha"}