数组
数组也就是相当于一个容器,可以装进去各种东西。
实现方法
这是一个最简单的声明方式
func ArrDeclare1(){
//默认值为0
var arr [5]int
fmt.Println(arr)
}
各种不同的声明方式
func ArrDeclare2(){
var arr = [5]int{1, 2, 3, 4, 5}
fmt.Println(arr)
//短声明
arr2 := [5]int{11, 21, 31, 11, 51}
fmt.Println(arr2)
//部分初始化
arr3 := [5]int{11, 21}
fmt.Println(arr3)
//可以指定位置去定义
arr4 := [5]int{1:11, 3:21, 2:31, 4:11, 0:51}
fmt.Println(arr4)
//让编译器为我们计算位置,即使用三个点
arr5 := [...]int{11, 21, 31, 11, 51}
fmt.Println(arr5)
}
查询数组是什么类型的
func CheckType(){
//数组的长度是类型的一部分
arr2 := [5]int{11, 21, 31, 11, 51}
arr3 := [...]string{"我", "的", "名", "子","叫","HH"}
fmt.Println(arr2)
fmt.Println(arr3)
fmt.Printf("arr2的类型是 %T/n",arr3)
fmt.Println()
fmt.Printf("arr3的类型是 %T/n",arr2)
}
多维数组
func MultiArr(){
arr :=[3][2]string{
{"我","的"},
{"名","字"},
{"叫“,”HH"},
}
fmt.Println(arr)
fmt.Println("输出数组的长度len(arr):",len(arr))
}
对数组的遍历
func traver() {
arr3 := [...]string{"我", "的", "名", "子","叫","HH"}
//method 1
for index,value := range arr3{
fmt.Printf("arr3[%d]=%s\n",index,value)
}
//method2
for _,value :=range arr3{
fmt.Printf("value=%s\n",value)
}
}
复制数组
func ArrCopy() {
//由此可得数组是值类型并不是引用类型
arr3 := [...]string{"我", "的", "名", "子","叫","HH"}
copy := arr3
copy[0]="你"
fmt.Println(arr3)
fmt.Println(copy)
}
运行即可
func main() {
ArrDeclare1()
ArrDeclare2()
CheckType()
MultiArr()
traver()
}
总结
对于数组声明来说会用即可,并没有太多注意点。至少现在还没有遇见,后面遇见了再补充。