数组的类型可以表示为[n]T
。n
表示数组中元素的数量,T
表示每个元素的类型。元素的数量n
也是类型的一部分(稍后我们将对此进行更详细的讨论)。
声明数组有不同的方法。让我们一个一个地看。
package main
import (
"fmt"
)
func main() {
var a [3]int //长度为3的整数数组
fmt.Println(a)
}
var a [3]int
声明一个长度为3的整数数组。数组中的所有元素都自动赋值为所属类型的零值。此处,a
是一个整数数组,因此a
的所有元素都赋值为0,即int
的0值,运行上面的程序将输出[0 0 0]
。
数组的索引从0
开始,以数组长度 - 1
结束。让我们为上面的数组分配一些值。
package main
import (
"fmt"
)
func main() {
var a [3]int //长度为3的整数数组
a[0] = 12 // 数组索引从0开始
a[1] = 78
a[2] = 50
fmt.Println(a)
}
a[0]
是数组第一个元素,以此类推。程序将输出[12 78 50]
让我们用更简短的声明来创建相同的数组。
package main
import (
"fmt"
)
func main() {
a := [3]int{12, 78, 50} // 创建数组的简短声明
fmt.Println(a)
}
上面的程序将有同样输出:[12 78 50]
在简短声明期间,不必为数组中的所有元素赋值。
package main
import (
"fmt"
)
func main() {
a := [3]int{12}
fmt.Println(a)
}
在上面的程序中,代码行a := [3]int{12}
声明了一个长度为3的数组,但是只提供了一个值12。其余2个元素自动赋值为0。程序将输出[12 0 0]
你甚至可以省略声明中的数组长度,并将其替换为…
,让编译器帮你确认长度。
package main
import (
"fmt"
)
func main() {
a := [...]int{12, 78, 50} // ... 让编译器决定长度
fmt.Println(a)
}