(1) 固定大小数组
1 package main
2 import "fmt"
3
4 //值拷贝
5 func printArray(myArray [4] int) {
6
7
8 for index, value := range myArray {
9 fmt.Println("index = ", index, ", value = ", value)
10 }
11 myArray[0] = 111
12 }
13
14 func main() {
15 //声明固定长度的数组
16 var myArray1 [10]int
17
18 myArray2 := [10]int{1,2,3,4}
19 myArray3 := [4]int{11,22,33,44}
20
21 // 遍历数组方式1
22 for i := 0; i < len(myArray1); i++ {
23 fmt.Println(myArray1[i])
24 }
25
26 // 遍历数组方式2
27 for index, value := range myArray2 {
28 fmt.Println("index = ", index, ", value = ", value)
29 }
30
31 //查看数组的数据类型
32 fmt.Printf("myArray1 types = %T\n", myArray1)
33 fmt.Printf("myArray2 types = %T\n", myArray2)
34 fmt.Printf("myArray3 types = %T\n", myArray3)
35
36 printArray(myArray3)
37 fmt.Println(" ------ ")
38 for index, value := range myArray3 {
39 fmt.Println("index = ", index, ", value = ", value)
40 }
41 }
(2) 动态数组
1 以这种形式声明的数组,myArray := []int{1,2,3,4},是动态数组splice.
2 动态数组传入函数的时候,是引用传递,传入的是数组的指针。
3
4 package main
5 import "fmt"
6
7 //引用传递
8 func printArray(myArray []int) {
9 // _ 表示匿名的变量
10 for _, value := range myArray {
11 fmt.Println("value = ", value)
12 }
13 myArray[0] = 100
14 }
15
16 func main() {
17 //声明动态数组,切片 slice
18 myArray := []int{1,2,3,4}
19
20 fmt.Printf("myArray type is %T\n", myArray)
21 printArray(myArray)
22
23 fmt.Println(" ==== ")
24
25 // _是匿名变量
26 for _, value := range myArray {
27 fmt.Println("value = ", value)
28 }
29 }