12.Go_Array(数组)

Go 数组

数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者
自定义类型。
Go 语言数组声明需要指定元素类型及元素个数,语法格式:
var variable_name [SIZE] variable_type
定义了数组 array_a 长度为 10 类型为 float32:
var array_a [10] float32
初始化数组
数组初始化
//初始化数组中 {} 中的元素个数不能大于 [] 中的数字
var array_a = [5]float32{1.0,2.0,3.0,4.0,5.0}
如果忽略 [] 中的数字不设置数组大小,Go 语言会根据元素的个数来设置数组的大小
 var array_a = [...]float32{1.0, 2.0, 3.0, 4.0, 5.0}
访问数组元素
数组元素可以通过索引(位置)来读取。
例如:
package main
import "fmt"
func main()  {
    //n 是一个长度为10的数组
    var n [10]int
    var i,j int
    //数组n 初始化元素
    for i = 0; i < 10;i++{
        //设置元素为i + 100
        n[i] = i + 100;
    }
    //输出每个数组元素的值
    for j = 0;j<10;j++{
        fmt.Printf("元素[%d] = %d\n",j,n[j])
    }
}
运行结果:
元素[0] = 100
元素[1] = 101
元素[2] = 102
元素[3] = 103
元素[4] = 104
元素[5] = 105
元素[6] = 106
元素[7] = 107
元素[8] = 108
元素[9] = 109

多维数组

多维数组声明方式:
var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type

var multidimensionalArray [5][10][4]int
二维数组
二维数组是最简单的多维数组,二维数组本质上是由一维数组组成的
二维数组定义方式
var arrayName [ x ][ y ] variable_type
初始化二维数组
多维数组可通过大括号来初始值。
a = [3][4]int{  
 {0, 1, 2, 3} ,   /*  第一行索引为 0 */
 {4, 5, 6, 7} ,   /*  第二行索引为 1 */
 {8, 9, 10, 11}   /*  第三行索引为 2 */
}
访问二维数组
二维数组通过指定坐标来访问。
int val = a[2][2]
访问二维数组val第三行的第三个元素
例如:
package main
import "fmt"
func main() {
    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

向函数传递数组

1. 形参设定数组大小:
void myFunction(param [10]int)
{
}
2. 形参未设定数组大小
void myFunction(param []int)
{
}
例如:
package main
import "fmt"
func main() {
    /* 数组长度为 5 */
    var  balance = []int {100, 60, 4, 16, 50}
    var avg float32
    /* 数组作为参数传递给函数 */
    avg = getAver( balance, 5 ) ;
    /* 输出返回的平均值 */
    fmt.Printf( "平均值为: %f ", avg );
}
func getAver(arr []int, size int) float32 {
    var i,sum int
    var avg float32
    for i = 0; i < size;i++ {
        sum += arr[i]
    }
    avg = float32(sum / size)
    return avg;
}
运行效果:
平均值为: 46.000000 

你可能感兴趣的:(12.Go_Array(数组))