Go 数组 - go 训练营
数组的元素具有相同的类型。由于 Go 中数组的长度是固定的,所以很少直接使用。如下定义了长度为 3 的整数类型的数组。
var a [3]int
数组可以通过索引来访问,如下,
fmt.Println(a[0])
Go 的内置函数 len 可以返回数组中元素的个数。
fmt.Println(a[len(a)-1])
如上语句返回数组 a 中的最后一个元素。
可以用 for 循环来遍历数组。
for i, v := range a {
fmt.Printf("%d %d\n", i, v)
}
或者仅输出元素
for _, v := range a {
fmt.Printf("%d\n", v)
}
可以使用数组自变量根据一组值来初始化一个数据,如下:
var q [3]int = [3]int{1, 2, 3}
默认情况下,新数组中的元素初始值为元素的零值。在数组字面量中,如果省略号出现在数组长度的位置,那么数组的长度由初始化元素的个数决定。
q := [...]int {1,2, 3}
和结构体字面量类似,也可以不按顺序给出所有的值,而是指定索引位置的值,如下
r := [...]int{99:-1}
定义了一个拥有 100 个元素的数组 r,除了最后一个元素值是 -1 外,该数组中的其它元素都是 0。
当调用一个函数的时候,每个传入的参数都会创建一个副本,然后赋值给对应的函数变量,所以函数接受的是一个副本,而不是原始的参数。使用这种方式传递大的数组会变得很低效。在其它语言中,数组是隐式地使用引用传递。在 Go 中可以显式的传递一个数组的指针给函数。如下:
func zero(ptr *[32]byte) {
for i:= range ptr {
ptr[i]=0
}
}
欢迎参加 Go 训练营挑战,这些挑战将帮助你逐步掌握 Go 开发。Go(又称Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。在 2016 年,Go 被软件评价公司 TIOBE 选为“TIOBE 2016年最佳语言”。