宣告和初始化:
宣告陣列時需要指定內部儲存的資料的型別,以及需要儲存的元素的數量,這個數量也稱為陣列的長度
//宣告乙個包含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語言風格。比如語言緊湊 格式化要求...