本文主要介紹go語言中陣列(array)及它的基本使用。
陣列是同一種資料型別元素的集合。 在go語言中,陣列從宣告時就確定,使用時可以修改陣列成員,但是陣列大小不可變化。 基本語法:
var 陣列變數名 [元素數量]t
比如:var a [5]int, 陣列的長度必須是常量,並且長度是陣列型別的一部分。一旦定義,長度不能變。 [5]int和[10]int是不同的型別。
陣列可以通過下標進行訪問,下標是從0開始,最後乙個元素下標是:len-1,訪問越界(下標在合法範圍之外),則觸發訪問越界,會panic。
陣列的初始化也有很多方式。
方法一
初始化陣列時可以使用初始化列表來設定陣列元素的值。
方法二
按照上面的方法每次都要確保提供的初始值和陣列長度一致,一般情況下我們可以讓編譯器根據初始值的個數自行推斷陣列的長度,例如:
方法三
我們還可以使用指定索引值的方式來初始化陣列,例如:
遍歷陣列a有以下兩種方法:
go語言是支援多維陣列的,我們這裡以二維陣列為例(陣列中又巢狀陣列)。
二維陣列的定義
二維陣列的遍歷
輸出:
北京上海廣州深圳成都重慶
注意:多維陣列只有第一層可以使用...來讓編譯器推導陣列長度。例如:
陣列是值型別,賦值和傳參會複製整個陣列。因此改變副本的值,不會改變本身的值。
注意:
陣列支援 「==「、」!=」 操作符,因為記憶體總是被初始化過的。
[n]*t表示指標陣列,*[n]t表示陣列指標 。
練習題
求陣列[1, 3, 5, 7, 8]所有元素的和
找出陣列中和為指定值的兩個元素的下標,比如從陣列[1, 3, 5, 7, 8]中找出和為8的兩個元素的下標分別為(0,3)和(1,2)。
陣列與鍊錶 一文讀懂
資料結構是軟體開發中最基礎的部分了,它體現著我們程式設計的內功。大多數人在正兒八經學習資料結構的時候估計是在大學計算機課上,而在實際專案開發中,反而感覺到用得不多。其實也不是真的用得少,只不過我們在使用的時候被很多高階語言和框架元件封裝好了,真正需要自己去實現的地方比較少而已。但別人封裝好了不代表我...
如何控制if跳出 一文掌握Go的流程控制
流程控制是每種程式語言控制邏輯走向和執行次序的重要部分,流程控制可以說是一門語言的 經脈 go語言中最常用的流程控制有if和for,而switch和goto主要是為了簡化 降低重複 而生的結構,屬於擴充套件類的流程控制。if條件判斷基本寫法 go語言中if條件判斷的格式如下 當表示式1的結果為tru...
go for迴圈 逗號 一文掌握Go的流程控制
流程控制是每種程式語言控制邏輯走向和執行次序的重要部分,流程控制可以說是一門語言的 經脈 go語言中最常用的流程控制有if和for,而switch和goto主要是為了簡化 降低重複 而生的結構,屬於擴充套件類的流程控制。if條件判斷基本寫法 go語言中if條件判斷的格式如下 當表示式1的結果為tru...