Go 語言陣列
Go 語言陣列
Go 語言提供了陣列型別的資料結構。
陣列是具有相同唯一型別的一組已編號且長度固定的資料項序列,這種型別可以是任意的原始型別例如整型、字串或者自定義型別。
相對於去宣告 number0, number1, ..., number99 的變數,使用陣列形式 numbers[0], numbers[1] ..., numbers[99] 更加方便且易於擴充套件。
陣列元素可以通過索引(位置)來讀取(或者修改),索引從 0 開始,第一個元素索引為 0,第二個索引為 1,以此類推。
宣告陣列
Go 語言陣列宣告需要指定元素型別及元素個數,語法格式如下:
var variable_name [SIZE] variable_type
以上為一維陣列的定義方式。例如以下定義了陣列 balance 長度為 10 型別為 float32:
var balance [10] float32
初始化陣列
以下演示了陣列初始化:
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}
如果陣列長度不確定,可以使用 ... 代替陣列的長度,編譯器會根據元素個數自行推斷陣列的長度:
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}
如果設定了陣列的長度,我們還可以通過指定下標來初始化元素:
// 將索引為 1 和 3 的元素初始化
balance := [5]float32{1:2.0,3:7.0}
初始化陣列中 {} 中的元素個數不能大於 [] 中的數字。
如果忽略 [] 中的數字不設定陣列大小,Go 語言會根據元素的個數來設定陣列的大小:
balance[4] = 50.0
以上例項讀取了第五個元素。陣列元素可以通過索引(位置)來讀取(或者修改),索引從 0 開始,第一個元素索引為 0,第二個索引為 1,以此類推。
訪問陣列元素
陣列元素可以通過索引(位置)來讀取。格式為陣列名後加中括號,中括號中為索引的值。例如:
var salary float32 = balance[9]
以上例項讀取了陣列 balance 第 10 個元素的值。
以下演示了陣列完整操作(宣告、賦值、訪問)的例項:
例項 1
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
例項 2
package main
import "fmt"
func main() {
var i,j,k int
// 宣告陣列的同時快速初始化陣列
balance := [5]float32{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 := [...]float32{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] )
}
// 將索引為 1 和 3 的元素初始化
balance3 := [5]float32{1:2.0,3:7.0}
for k = 0; k < 5; k++ {
fmt.Printf("balance3[%d] = %f\n", k, balance3[k] )
}
}
以上例項執行結果如下:
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
balance3[0] = 0.000000
balance3[1] = 2.000000
balance3[2] = 0.000000
balance3[3] = 7.000000
balance3[4] = 0.000000
更多內容
陣列對 Go 語言來說是非常重要的,以下我們將介紹陣列更多的內容:
內容 | 描述 |
---|---|
多維陣列 | Go 語言支援多維陣列,最簡單的多維陣列是二維陣列 |
向函式傳遞陣列 | 你可以向函式傳遞陣列引數 |
本文轉自:https://www.runoob.com/go/go-arrays.html
個性簽名:獨學而無友,則孤陋而寡聞!
如果覺得這篇文章對你有小小的幫助的話,記得點個“關注”哦,博主在此感謝!還可以掃碼新增好友,交流程式設計上的問題哦!
萬水千山總是情,點贊再走行不行!哈哈哈(っ•̀ω•́)っ✎⁾⁾!