2021-10-27
Go 語(yǔ)言數(shù)組
Go語(yǔ)言提供了數(shù)組類(lèi)型的數(shù)據(jù)結(jié)構(gòu)
數(shù)組是具有相同唯一類(lèi)型的一組已編號(hào)且長(zhǎng)度固定的數(shù)據(jù)項(xiàng)序列,這種類(lèi)型可以是任意的原始類(lèi)型例如整型京闰、字符串或者自定義類(lèi)型知残。
數(shù)組的聲明
語(yǔ)法
var 數(shù)組變量名 [元素?cái)?shù)量]type
數(shù)組變量名:數(shù)組聲明及使用時(shí)的變量名
元素?cái)?shù)量:數(shù)組元素的個(gè)數(shù)
Type:可以時(shí)任意基本類(lèi)型辱志,包括數(shù)組本身
數(shù)組元素可以通過(guò)索引(位置)來(lái)讀取(或者修改)箱残,索引從 0 開(kāi)始滔迈,第一個(gè)元素索引為 0,第二個(gè)索引為 1被辑,以此類(lèi)推燎悍。
例子:
package main
import "fmt"
func main() {
var array [10]int=[10]int{1,2,3,4,5,6,7,8,9,10}
fmt.Printf("first:%d\n",array[0])
fmt.Printf("last:%d\n",array[len(array)-1])
for x,y:=range array{
fmt.Printf("%d %d\n",x,y)//打印索引和元素
fmt.Printf("\n%d\n",y) //打印元素
}
}
效果圖,索引時(shí)從0開(kāi)始
例子中的array數(shù)組內(nèi)的元素初始化為1-10盼理,這只是初始化數(shù)組的一種方式谈山,默認(rèn)情況下的數(shù)組元素初始化為對(duì)應(yīng)類(lèi)型的零值。
在定義數(shù)組的時(shí)候出現(xiàn)...
省略號(hào)時(shí)宏怔,表示數(shù)組的長(zhǎng)度是根據(jù)初始化值的個(gè)數(shù)計(jì)算
array :=[...]int{1,2,3}
比較一個(gè)數(shù)組是否相等
數(shù)組類(lèi)型相同(數(shù)組長(zhǎng)度奏路、數(shù)組中元素的類(lèi)型)可以通過(guò)比較運(yùn)算符)(==
和!=
)判斷
學(xué)習(xí)地址:http://c.biancheng.net/view/26.html
多維數(shù)組
Go語(yǔ)言中多維數(shù)組尤其適合管理具有父子關(guān)系或者與坐標(biāo)系相關(guān)聯(lián)的數(shù)據(jù)臊诊。
聲明語(yǔ)法
var array_name [size1][size2]...[sizen] array_type
array_name:多維數(shù)組的名字
size:每一個(gè)維度的長(zhǎng)度
最簡(jiǎn)單數(shù)組的是二維數(shù)組
例如:
var array1 [5][3]int //聲明一個(gè)二維數(shù)組鸽粉,長(zhǎng)度為5和3
array1 [5][3]int{{1,1},{1,2},{1,3},{2,1},{2,2},{2,3},{3,1},{3,2},{3,3},{4,1},{4,2},{4,3},{5,1},{5,2},{5,3}} //初始化整個(gè)數(shù)組中的值,
array1 [5][3]int {0:{1,1},5:{2,2}} //初始化第0個(gè)和第五個(gè)的數(shù)組的值抓艳,因?yàn)閿?shù)組的索引從零開(kāi)始触机,所以實(shí)際為第一個(gè)和第六個(gè)
如下,就是一個(gè)xy軸,y軸長(zhǎng)為5儡首,x軸長(zhǎng)為3的一個(gè)坐標(biāo)軸片任。
備注:圖中的數(shù)減一,因?yàn)樗饕龔?開(kāi)始蔬胯,每一個(gè)xy軸對(duì)應(yīng)的是一個(gè)數(shù)組
如果要訪問(wèn)二維數(shù)組中的具體某個(gè)元素对供,需要使用[][]
括號(hào),如下
//聲明數(shù)組2×2的
var array [2][2]int
//設(shè)置每個(gè)元素的整型值
array[0][0] = 10
array[0][1] = 20
array[1][0] = 30
array[1][1] = 40
只要類(lèi)型一致笔宿,也可以將多維數(shù)組相互賦值
// 聲明兩個(gè)二維整型數(shù)組
var array1 [2][2]int
var array2 [2][2]int
// 為array2的每個(gè)元素賦值
array2[0][0] = 10
array2[0][1] = 20
array2[1][0] = 30
array2[1][1] = 40
// 將 array2 的值復(fù)制給 array1
array1 = array2
因?yàn)閿?shù)組中每個(gè)元素都是一個(gè)值犁钟,所以可以獨(dú)立復(fù)制某個(gè)維度
// 將 array1 的索引為 1 的維度復(fù)制到一個(gè)同類(lèi)型的新數(shù)組里
var array3 [2]int = array1[1]
// 將數(shù)組中指定的整型值復(fù)制到新的整型變量里
var value int = array1[1][0]</pre>
學(xué)習(xí)地址:http://c.biancheng.net/view/4117.html