数组
简述
和PHP中各种姿势随便使用的数组不同,Golang
中的数组是具有相同唯一类型且元素个数固定的数据项序列。
Golang
数组:
- 数组中元素类型一致
- 数据元素可以是任意类型,包括自定义类型
- 数组长度固定,索引从0开始
声明数组
var 变量名 [数组长度] 数组元素类型
// 如定义长度为10,元素类型为float32的数组
var test [10] float32
初始化赋值
示例:
// 定义长度为5,元素类型为float32的数组,并赋值
var test = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
// 当省略元素个数,编译器会根据初始化赋值的元素个数计算,下面的语句效果和上面等同
var test = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
// 重新修改数组某个索引对应的值
test[3] = 30.0
访问数组元素
数组元素可以通过索引(位置)来读取。格式为数组名后加中括号,中括号中为索引的值。例如:
var salary float32 = balance[9]
以上实例读取了数组balance第10个元素的值。
综合示例
package main
import "fmt"
func main() {
var n [10]int /* n 是一个长度为 10 的数组 */
var i,j int
/* 为数组 n 初始化元素 */
for i = 0; i < 10; i++ {
n[i] = i + 100 /* 设置元素为 i + 100 */
}
/* 输出每个数组元素的值 */
for j = 0; j < 10; j++ {
fmt.Printf("Element[%d] = %d\n", j, n[j] )
}
}
实例输出
Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
多维数组
Golang
支持多维数组,定义方式如下
var 变量名 [首层数组长度][第二层数组长度] 数组元素类型
实例
var threedim [2][3]int
上面的定义类似于下面的PHP数组
[
[
0,0,0
],
[
0,0,0
]
]
初始化多维数组
二维数组是最简单的多维数组,二维数组本质上是由一维数组组成的。二维数组定义方式如下:
test := [3][4]int{
{0, 1, 2, 3} , /* 第一行索引为 0 */
{4, 5, 6, 7} , /* 第二行索引为 1 */
{8, 9, 10, 11}, /* 第三行索引为 2 */
}
访问二维数组
one := a[2][3]
实例
package main
import "fmt"
func main() {
/* 数组 - 5 行 2 列*/
var a = [5][2]int{ {0,0}, {1,2}, {2,4}, {3,6},{4,8}}
var i, j int
/* 输出数组元素 */
for i = 0; i < 5; i++ {
for j = 0; j < 2; j++ {
fmt.Printf("a[%d][%d] = %d\n", i,j, a[i][j] )
}
}
}
实例输出
a[0][0] = 0
a[0][1] = 0
a[1][0] = 1
a[1][1] = 2
a[2][0] = 2
a[2][1] = 4
a[3][0] = 3
a[3][1] = 6
a[4][0] = 4
a[4][1] = 8
向函数传递数组
如果阅读过《Golang函数》,那么应该知道,函数定义时是需要定义参数的数据类型的。
实例如下:
// 当函数参数为数组,可以选择设定或者不设定数组的长度
func getAverage(arr []int, size [3]int) float32
{
//....
}
本文章由 https://itdashu.com 原创发布,欢迎转载,转载请注明出处。
投稿或联系站长请发送邮件至 leno@itdashu.com。
投稿或联系站长请发送邮件至 leno@itdashu.com。
1829人推荐