一、数组的基本操作
1 package main
2
3 import "fmt"
4
5 func main() {
6 var arr[5] int
7 //数组会自动将自己的元素初始化
8 fmt.Println(arr)
9 //给其中的一个元素赋值
10 arr[0] = 11
11 arr[2] = 33
12 fmt.Println("arr = ", arr)
13
14 var arr1 [3]int = [3]int{11,22,33} // var arr1 = [3]int{11,22,33} 这两中写法都可以
15 fmt.Println("arr1 = ", arr1)
16
17 arr2 := []int{44,55,66}
18 fmt.Println("arr2 = ", arr2)
19 //len用于求长度
20 fmt.Println("arr2 的长度为:",len(arr2))
21
22 arr3 := [5]int{10}
23 fmt.Println("arr3 = ", arr3)
24
25 //通过下标进行赋值
26 arr4 := [7]int{2:100,5:555}
27 fmt.Println("arr4 = ", arr4)
28
29 //区别于C语言里面数组名就是一个指针 在go语言里面 数组的长度是数组元素的一部分,其长度不同的不能相互之间进行赋值
30 var arr5 [5]int
31 var arr6 [5]int
32 var arr7 [6]int
33 arr5 = arr6 //合法
34 //arr6 = arr7 //报错
35 fmt.Println(arr5)
36 fmt.Println(arr6)
37 fmt.Println(arr7)
38 //数组的遍历
39 for i:=0;i<len(arr1);i++ {
40 fmt.Printf("arr1[%d] = %d
",i,arr1[i])
41 }
42
43 println("下面我们使用for range的方式来遍历数组")
44 for index, value := range arr1{
45 fmt.Printf("arr1[%d] = %d
",index, value)
46 }
47 println("下面我们使用for range的方式来遍历数组,并且只输出他的值")
48 //range有两个返回值 使用下划线_ 来忽略第一个返回值
49 for _, value := range arr1{
50 fmt.Printf(" %d
", value)
51 }
52 }
二、数组的复制
1 package main
2
3 import "fmt"
4 func arrayModify(c [5]int){
5 c[0] = 1000
6 }
7 func main() {
8
9 var a [5]int = [5]int{6,5,2,3,8}
10 b := a //这种方式是新开一个内存,将a里面的所有值都复制一份到数组b
11
12 b[0] = 88
13 b[1] = 99
14 fmt.Printf("a[] = %v
",a)
15 fmt.Printf("b[] = %v
",b)
16 arrayModify(b) //你会发现执行这个函数 其实啥也没变
17 fmt.Printf("b[] = %v
",b)
18 }