ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一、语法格式如下: ~~~ var variable_name [SIZE] variable_type ~~~ ## 二、数组初始化 ### 1、长度确定 ~~~ var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0} balance := [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0} ~~~ ### 2、长度不确定 ~~~ var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0} 或 balance := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0} ~~~ ## 三、访问数组元素 ~~~ package main import "fmt" func main() { var i, j int // 声明数组的同时快速初始化数组 balance := [5]float64{1000.0, 2.0, 3.4, 7.0, 50.0} /* 输出数组元素 */ for i = 0; i < 5; i++ { fmt.Printf("balance[%d] = %f\n", i, balance[i]) } balance2 := [...]float64{1000.0, 2.0, 3.4, 7.0, 50.0} /* 输出每个数组元素的值 */ for j = 0; j < 5; j++ { fmt.Printf("balance2[%d] = %f\n", j, balance2[j]) } } ~~~ 执行结果: balance[0] = 1000.000000 balance[1] = 2.000000 balance[2] = 3.400000 balance[3] = 7.000000 balance[4] = 50.000000 balance2[0] = 1000.000000 balance2[1] = 2.000000 balance2[2] = 3.400000 balance2[3] = 7.000000 balance2[4] = 50.000000 ## 四、多维数组 ### 1、初始化二维数组 多维数组可通过大括号来初始值。以下实例为一个 3 行 4 列的二维数组: ~~~ a := [3][4]int{ {0, 1, 2, 3} , /* 第一行索引为 0 */ {4, 5, 6, 7} , /* 第二行索引为 1 */ {8, 9, 10, 11}, /* 第三行索引为 2 */ } ~~~ 以下实例初始化一个 2 行 2 列 的二维数组: ~~~ package main import "fmt" func main() { // 创建二维数组 sites := [2][2]string{} // 向二维数组添加元素 sites[0][0] = "Google" sites[0][1] = "Runoob" sites[1][0] = "Taobao" sites[1][1] = "Weibo" // 显示结果 fmt.Println(sites) } ~~~ 执行结果: [[Google Runoob] [Taobao Weibo]] ### 2、访问二维数据 ~~~ 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 ## 五、 数组的类型 1、Go中数组属值类型,在默认情况下是值传递,因此会进行值拷贝。 如想在其它函数中,去修改原来的数组,可以使用引用传递(指针方式)。 ![](https://img.kancloud.cn/40/b4/40b401955699e75e906594fbe5606f0e_689x292.png)