// ArrayTest project main.go package main import ( "fmt" ) func main() { //var arr = [5]int{1, 2, 3, 4, 5} arr := [5]int{1, 2, 3, 4, 5} modify_arr(arr) fmt.Println("函数外arr:", arr) /* 输出: 函数内arr: [10 2 3 4 5] 函数外arr: [1 2 3 4 5] */ } func modify_arr(arr [5]int) { arr[0] = 10 fmt.Println("函数内arr:", arr) }
说明:
1、数组内数据类型相同
2、数组长度不可更改
3、使用下标访问,从0开始,len(arr)-1表示最后一个元素
4、用range遍历数组时,第一个返回值是下标,第二个返回值是元素值
5、数组是一个值类型,所以数组作为函数参数时会发生数据复制。因此在函数体内无法修改原数组的内容,函数内操作的只是传入的一个副本。
6、数组切片可以实现函数内操作外部的数据结构