本文总结了Go中数组和切片的各自特点以及区别。
目录
三. 切片的make创建、apeend操作、拷贝及扩容前后变化
四. 排序查找
数组
一. 数组的特性
1)数组:是同一数据类型的固定长度的序列
2)定义:var a [len] int,一旦定义,长度不能改变。因为长度也是数组类型的一部分,var a[5]int 和var a[10] int是不同的类型。
3)数组可以通过下标访问,下标从0开始,最后一个元素小标为:len-1。
4)访问越界,如果下标在数组合法范围之外,就会触发访问越界,会panic。
从如下代码输出可直观得出:从test3()可见,数组是值类型,传进函数仅仅为副本,改变副本的值,不会改变本身的值。欲想改变其值,我们需如test4()所示,传入地址。
package main
import "fmt"
func test1() {
var a [10]int
j := 9
a[0] = 100
a[j] = 200
for i := 0; i < len(a); i++ {
fmt.Println(