首页 > 技术文章 > Go基础之数组

zhaocl 2018-01-18 11:49 原文

// 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、数组切片可以实现函数内操作外部的数据结构

推荐阅读