《Go語言實戰》讀書筆記之Golang的陣列

2021-10-03 10:22:29 字數 1276 閱讀 7882

宣告和初始化:

宣告陣列時需要指定內部儲存的資料的型別,以及需要儲存的元素的數量,這個數量也稱為陣列的長度

//宣告乙個包含5個元素的整型陣列

var array [5]int

一旦宣告,陣列裡儲存的資料型別和陣列長度就都不能改變了。如果需要儲存更多的元素,就需要先建立乙個更長的陣列,再把原來陣列裡的值複製到新陣列裡。

//用具體值初始化每個元素

array := [5]int

//用具體值初始化每個元素,容量由初始化的數量決定

array: = [...]int

//用具體值初始化索引為1和2的元素,其餘元素保持零值

array := [5]int

使用陣列:

//訪問陣列某個單獨元素,使用運算子

//修改索引為2的元素的值

array[2] = 35

可以宣告乙個所有元素都是指標的陣列。使用*就可以訪問元素指標所指向的值

//用整型指標初始化索引為0和1的陣列元素

array := [5]*int

//為索引為0和1的元素賦值

*array[0] = 10

*array[1] = 20

在go語言裡,陣列是乙個值。這意味著陣列可以用在賦值操作中。變數名代表整個陣列,因此,同樣型別的陣列可以賦值給另乙個陣列

注1:只有陣列長度和每個元素型別相同的陣列才能相互賦值

注2:複製陣列指標,只會複製指標的值,而不會複製指標所指向的值,也就是說,複製的陣列中元素指標指向的還是原來的值

var array1 [5]string

array2 := [5]string

//把array2的值複製到array1

array1 = array2

多維陣列:

陣列本身只有乙個維度,不過可以組合多個陣列建立多維陣列

//宣告乙個二維整型陣列

var array [4][2]int

//使用陣列字面量宣告並初始化乙個二維整型陣列

array := [4][2]int, , , }

在函式建傳遞陣列:

使用陣列指標傳入函式,只需要在棧上分配8位元組記憶體,效能更好。

注:不過由於傳遞的是指標,如果改變指標指向的值,會改變共享記憶體。

//分配乙個需要8mb的陣列

var array [1e6]int

//將陣列的指標傳遞給函式foo

foo(&array)

func foo(array *[1e6]int)

《Go語言實戰》讀書筆記之Golang的對映

對映是乙個儲存鍵值對的無序集合 建立和初始化 make函式建立 建立乙個對映,鍵的型別是string,值的型別是int dict make map string int 使用對映字面量建立 建立乙個鍵和值型別都是string的對映 dict map string string 使用對映 建立乙個空對...

go語言實戰筆記 二

碼 之前一定要安裝go,哈哈哈哈,反正我只裝goland然後寫不了 報錯,卡在第一段 哈哈哈哈哈哈 新建專案goproject 新建src資料夾 新建main資料夾 新建第乙個go檔案 開始寫 好了,我用一秒鐘的時間寫完了下面的 package main import bufio fmt os my...

《Go語言程式設計》讀書筆記

go語言榮譽 執行時,沒有任何外部依賴 執行速度快,很適合開發共享軟體。加上,我之前一直用c 語言開發,go有更好的 c語言美稱。自動垃圾 原生併發程式設計 速度媲美c 程式。基於channel goroutine,適應多核系統開發 函式多重返回值 簡化錯誤處理 c語言風格。比如語言緊湊 格式化要求...