Go程式設計基礎 陣列array

2021-08-14 16:08:22 字數 2298 閱讀 8138

陣列array

1、定 義 數 組 的 格 式 :var[n]<,n>=0

2、數 組 長 度 也 是 類 型 的一部分, 因此 具 有 不 同 長 度 的陣列為 為 不 同 類 型

3、注 意 區 分 指 向 數 組 的 指標和 指 針 數 組

4、數 組 在go 中 為 值 類 型

5、數 組 之 間 可 以 使 用 = = 或 ! = 進 行 比 較 , 但 不 可 以 使 用 < 或 >

6、可 以 使 用 new 來 創 建陣列 , 此 方 法 返 回 一 個 指 向 數 組 的 指 針

7、go支 持 多 維 數 組

var a [1]int

var b [10]int

以上a,b陣列為不同的陣列型別,因為它們的長度不一樣。同型別的陣列才可以使用= = 或 ! = 進 行 比 較。

go語言中陣列比較便捷的地方,可以快速的給某乙個位置的賦值如下

x:=[20]int

fmt.println(x)

結果如下

[000

0000

0000

0000

0000

1]

這就快速把第二十個值賦值,陣列的起始下標是0.

go語言的陣列可以自動計算陣列的個數,如下

x:=[...]int
也可以結合上兩種方式賦值,舉例如下:

y:=[...]int
下邊分析一下指向陣列的指標和指標陣列

z:=[...]int

var p *[10]int=&z

fmt.println(z)

fmt.println(p)

執行結果

[0 0 0 0 0 0 0 0 0 1]

&[0 0 0 0 0 0 0 0 0 1]

其中p就是指向陣列的指標

x,y:=1,2

a:=[...]*int

fmt.println(a)

這裡實際上儲存的位址,執行結果如下

[0xc0420080a8

0xc0420080c0]

這裡的a就是指標陣列

還有乙個是go語言中的特殊地方,其他語言中為了節省記憶體,陣列是引用型別,而在go語言中陣列是值型別,go語言中引用型別的陣列用切片(slice)來表示。

p:=new([10]int)

fmt.println(p)

執行結果如下

&[0 0 0 0 0 0 0 0 0 0]
這就是使用new關鍵字建立乙個陣列返回的是乙個指向陣列的指標。

還有一點就是不管指向陣列的指標還是陣列本身都可以使用下標來操作某乙個具體的元素如下;

b:=[10]int{}

b[2]=2

p:=new([10]int)

p[2]=2

fmt.println(b)

fmt.println(p)

執行結果

[0 0 2 0 0 0 0 0 0 0]

&[0 0 2 0 0 0 0 0 0 0]

多維陣列

a:=[2][3]int,

,}fmt.println(a)

//或

a:=[2][3]int,

}fmt.println(a)

對前邊中括號中的2和3的解釋就是陣列中有2個元素,每個元素就是長度為3的int陣列。

以下:go 語 言 版冒 泡 排 序–從大到小排序

b:=[...]int

fmt.println(b)

num:=len(b)

for i:=0;ifor j:=i+1;jif b[i]執行結果

[316

999]

[99963

1]

go語言基礎 陣列array

1.陣列 概念 儲存一組相同的資料型別的資料結構。特點 資料結構 記憶體上是連續空間。儲存資料特點 有序,可以重複。資料型別一致。定長 陣列一旦建立長度不能更改,但是可以更改儲存的資料。使用 建立陣列 var 陣列名 size 資料型別 0000000 var 陣列名 size 資料型別 陣列名 5...

Go基礎資料結構 陣列Array

陣列和切片是 go 語言中常見的資料結構,很多剛剛使用 go 的開發者往往會混淆這兩個概念。陣列作為最常見的集合在程式語言中是非常重要的,除了陣列之外,go 語言引入了另乙個概念 切片,切片與陣列有一些類似,但是它們的不同導致了使用上的巨大差別。golang array和以往認知的陣列有很大不同 1...

Go容器 陣列 array

變數在一定程度上能滿足函式及 的要求。如果編寫一些複雜演算法 資料結構和邏輯,就需要更複雜的型別來實現。這類複雜型別一般情況下具有各種形式的儲存和處理資料的功能,將它們稱為 容器 陣列是一段固定長度的連續記憶體空間,由若干相同資料型別的元素組成的序列。在go語言中,陣列的大小在宣告時就固定下來,使用...