往期回顧:
- Go 語言教程–介紹(一)
- Go 語言教程–語言結(jié)構(gòu)(二)
- Go 語言教程–語言結(jié)構(gòu)(三)
- Go 語言教程–數(shù)據(jù)類型(四)
- Go 語言教程–語言變量(五)
- Go 語言教程–GO語言常量(六)
- Go 語言教程–GO語言運(yùn)算符(七)
- Go 語言教程–GO條件和循環(huán)語句(八)
- Go 語言教程–GO語言函數(shù)(九)
- Go 語言教程–GO語言變量作用域(十)
Go 語言提供了數(shù)組類型的數(shù)據(jù)結(jié)構(gòu)。
數(shù)組是具有相同唯一類型的一組已編號且長度固定的數(shù)據(jù)項序列,這種類型可以是任意的原始類型例如整型、字符串或者自定義類型。
相對于去聲明 number0, number1, …, number99 的變量,使用數(shù)組形式 numbers[0], numbers[1] …, numbers[99] 更加方便且易于擴(kuò)展。
數(shù)組元素可以通過索引(位置)來讀取(或者修改),索引從 0 開始,第一個元素索引為 0,第二個索引為 1,以此類推。
聲明數(shù)組
Go 語言數(shù)組聲明需要指定元素類型及元素個數(shù),語法格式如下:
var variable_name [SIZE] variable_type
以上為一維數(shù)組的定義方式。例如以下定義了數(shù)組 balance 長度為 10 類型為 float32:
var balance [10] float32
初始化數(shù)組
以下演示了數(shù)組初始化:
var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
我們也可以通過字面量在聲明數(shù)組的同時快速初始化數(shù)組:
balance := [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
如果數(shù)組長度不確定,可以使用 … 代替數(shù)組的長度,編譯器會根據(jù)元素個數(shù)自行推斷數(shù)組的長度:
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}
如果設(shè)置了數(shù)組的長度,我們還可以通過指定下標(biāo)來初始化元素:
// 將索引為 1 和 3 的元素初始化
balance := [5]float32{1:2.0,3:7.0}
初始化數(shù)組中 {} 中的元素個數(shù)不能大于 [] 中的數(shù)字。
如果忽略 [] 中的數(shù)字不設(shè)置數(shù)組大小,Go 語言會根據(jù)元素的個數(shù)來設(shè)置數(shù)組的大?。?/p>
balance[4] = 50.0
以上實例讀取了第五個元素。數(shù)組元素可以通過索引(位置)來讀?。ɑ蛘咝薷模饕龔?0 開始,第一個元素索引為 0,第二個索引為 1,以此類推。
訪問數(shù)組元素
數(shù)組元素可以通過索引(位置)來讀取。格式為數(shù)組名后加中括號,中括號中為索引的值。例如:
var salary float32 = balance[9]
以上實例讀取了數(shù)組 balance 第 10 個元素的值。
以下演示了數(shù)組完整操作(聲明、賦值、訪問)的實例:
實例 1
package main
import "fmt"
func main() {
var n [10]int /* n 是一個長度為 10 的數(shù)組 */
var i,j int
/* 為數(shù)組 n 初始化元素 */
for i = 0; i < 10; i++ {
n[i] = i + 100 /* 設(shè)置元素為 i + 100 */
}
/* 輸出每個數(shù)組元素的值 */
for j = 0; j < 10; j++ {
fmt.Printf("Element[%d] = %d\n", j, n[j] )
}
}
以上實例執(zhí)行結(jié)果如下:
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文章來源:http://www.zghlxwxcb.cn/news/detail-550670.html
import "fmt"
func main() {
var i,j,k int
// 聲明數(shù)組的同時快速初始化數(shù)組
balance := [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
/* 輸出數(shù)組元素 */ ...
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}
/* 輸出每個數(shù)組元素的值 */
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] )
}
}
以上實例執(zhí)行結(jié)果如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-550670.html
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
到了這里,關(guān)于【Go】Go 語言教程--GO語言數(shù)組(十一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!