数组:存放多个同一类型的数据。在Go中,数组也是一种值类型
数组的基本定义:
数组的内存布局:
- 数组的地址可以用&取出,且它的地址就是第一个元素的地址
- 数组不用被被初始化而默认是有值的;
- 数组中的某元素地址是前一个元素的地址加上本元素所占的字节数,这里Int占八位字节(64位系统),则intArr[1]的地址就等于intArr[0]的地址+8;
- 改变元素的值,并不会改变它的地址;
数组初始化的四种方式:
数组的遍历:
数组需要注意的细节:
- 数组是多个相同数据类型数据的组合,一个数组一旦定义了,其长度是固定的,不是动态变化的;
- var arr []int,这是arr就是一个slice切片,注意没有申明长度;
- 数组中的元素可以是任意数据类型,包括值类型和引用类型,但是不能混用;
- 数组定义后,如果没有赋值,则会有默认值;
- 数组下标从0开始;
- 数组下标必须在指定范围内;
- Go语言的数组是值类型,在默认情况下是值传递,因此会进行值拷贝,即数组间不会相互影响;也就是说是两个数组了;
- 如果在其他函数中,去修改原来的数组,可以使用引用传递(指针方式)
-
长度是数组类型的一部分,在传递函数参数时,需要考虑数组的长度;
数组小例子:反转数组并输出