package main
import "fmt"
//20
func main() {
/*
数组:
1. 概念
存储一组相同数据类型的数据结构
2. 语法
var 数组名 [长度] 数据类型
var 数组名 = [长度] 数据类型 {元素1,元素2...}
数组名 := [...] 数据类型 {元素1,元素2...}
*/
var arr1 [4] int
arr1[0] = 1
arr1[1] = 2
arr1[2] = 3
arr1[3] = 4
fmt.Println(arr1[0])
fmt.Println("数组的长度:",len(arr1)) //实际存储
fmt.Println("数组的容量:",cap(arr1)) //最大存储
// 因为数组定长,所以二者相同
//其他创建方式,直接赋值
var b = [4]int{1,2,3,4}
fmt.Println(b)
f := [...]int{1,2,3,4,5}
fmt.Println(f)
g := [...]int{1:3,6:5}
fmt.Println(g)
}
数组的遍历
/*
遍历
*/
for i:=0;i<len(arr1);i++ {
arr1[i] = i*2 + 1
}
fmt.Println(arr1)
//range
for index,value := range arr1 {
fmt.Printf("下标是:%d,数值是:%d\n",index,value)
}
sum := 0
for _,v := range arr1 {
sum += v
}
fmt.Println(sum)
数组是值类型
/*
数组是值类型
[size]type
*/
arr01 := [4]int{1,2,3,4}
arr2 := [3]float64{2.15,3.18,6.19}
arr3 := [4]int{5,6,7,8}
arr4 := [2]string{"hello","world"}
fmt.Printf("%T\n",arr01) //[4]int
fmt.Printf("%T\n",arr2) //[3]float64
fmt.Printf("%T\n",arr3) //[4]int
fmt.Printf("%T\n",arr4) //[2]string
//2.值传递
数组的排序
冒泡排序
for i:=1;i<len(arr01);i++ {
for j:=0;j<len(arr01)-i;j++ {
if(arr01[j] > arr01[j+1]) {
arr01[j],arr01[j+1] = arr01[j+1],arr01[j]
}
}
}
fmt.Println(arr01)
多维数组
/*
二维数组
a2 := [3][4]int{{},{},{}}
*/
a2 := [3][4]int{{1,2,3,4},{5,6,7,8},{9,10,11,12}}
fmt.Println(a2)
fmt.Printf("二维数组的地址:%p\n",&a2)
fmt.Printf("二维数组的长度:%d\n",len(a2))
fmt.Printf("一维数组的长度:%d\n",len(a2[0]))
fmt.Printf("二维数组的容量:%d\n",cap(a2))
fmt.Println(a2[0][3])
//遍历
for i:=0;i<len(a2);i++ {
for j:=0;j<len(a2[i]);j++ {
fmt.Print(a2[i][j],"\t")
}
fmt.Println()
}
//for range
for _,arr := range a2 {
for _,val := range arr {
fmt.Print(val,"\t")
}
fmt.Println()
}
网友评论