Go从入门到精通——数组(固定大小的连续空间)
数组(固定大小的连续空间)
数组是一段固定长度的连续内存区域。
在 Go 语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。
Go 语言中的数组概念和 C 语言的数组概念完全一致。C 语言的数组也是一段固定长度的内存区域,数组的大小在声明时固定下来。
1.1、声明数组
数组的写法如下:
var 数组变量名 [元素数量] T
其中:
- 数组变量名:数组声明及使用时的变量名。
- 元素数量:数组的元素数量。可以是一个表达式,但最终通过编译器计算的结果必须是整型数值。也就是说,元素数量不能含有到运行时才能确认大小的数值。
- T:可以是任意基本类型,包括 T 为数组本身。但类型为数组本身时,可以实现多位数组。
举个数组的例子吧
package main import ( "fmt" ) func main() { var team [3]string team[0] = "shanghai" team[1] = "beijing" team[2] = "nanjing" fmt.Println(team) }
1.2、初始化数组
数组可以在声明时使用初始化列表进行元素设置:
var team1 = [3]string{ "上海", "北京", "南京"}
这种声明方式有个注意点,需要保证大括号后面的元素数量与数组的大小一致。但一般情况下,这个过程可以交给编译器,让编译器在编译时,根据元素的个数确定数组大小。
比如:
var team = [...]string{"上海", "北京", "南京"}
" ... " 表示让编译器确定数组大小。上面的例子中,编译器会自动为这个数组设置元素个数为 3 。
1.3、遍历数组——访问每一个数值元素
举个例子吧。
package main import "fmt" func main() { var team [3]string team[0] = "上海" team[1] = "北京" team[2] = "南京" for k, v := range team { fmt.Println(k, v) } }
代码输出如下: