NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
## 数组 数组是一个由**固定长度**的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,因此在Go语言中很少直接使用数组。 默认情况下,数组的**每个元素都被初始化为元素类型对应的零值**,对于数字类型来说就是0。 在数组字面值中,如果在数组的**长度位置出现的是“...”省略号**,则表示数组的长度是根据初始化值的个数来计算 数组的长度是数组类型的一个组成部分,因此\[3\]int和\[4\]int是两种不同的数组类型。数组的长度必须是常量表达式,因为数组的长度需要在编译阶段确定。 ~~~ q := [...]int{1, 2, 3} ~~~ 如果一个数组的元素类型是可以相互比较的,那么数组类型也是可以相互比较的,这时候我们可以直接通过==比较运算符来比较两个数组,只有当两个数组的所有元素都是相等的时候数组才是相等的。不相等比较运算符!=遵循同样的规则。 ~~~ a1 := [3]int{1, 2, 3} a2 := [3]int{1, 2, 3} fmt.Println(a1 == a2) //true ~~~ ## 值拷贝 数组默认是值拷贝的,在函数中对数组元素进行修改是不会影响到数组外的元素的. 如果想修改源数组元素的值,那么必须传入指针到函数内. ~~~ func main() { arr := [3]int{1, 2, 3} change(arr) fmt.Println(arr) //1,2,3 } func change(a [3]int) { a[0] = 100 } ~~~