Go语言学习笔记十一--Go语言数组的相关操作

一、数组的基本操作

 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 }
原文地址:https://www.cnblogs.com/xwxz/p/13322408.html