2020 10 15Go語言陣列

2021-10-24 19:19:41 字數 1535 閱讀 2429

陣列是具有相同唯一型別的一組已編號,且長度固定的資料項序列。這種型別可以使任意的原始型別例如 int float string以及自定義型別等等。

golang中陣列的另乙個特點是占用記憶體的連續性,也就是說陣列中的元素是被分配進乙個連續的記憶體位址中,因此通過索引獲取陣列元素的速度會非常快。和陣列相對應的型別是slice切片,slice是可以增長和收縮的動態序列,功能也更加靈活。

var 陣列變數名 [元素數量] t
示例

package main

import "fmt"

func main()

fmt.println(arr4) //[1 2 3 4]

//陣列初始化三,自動推斷長度

var arr5 = [...] string

fmt.println(arr5) //[hello world]

//陣列初始化三,自動推斷長度

arr6 := [...]int

fmt.println(arr6) //[0 1 0 5]

}

遍歷陣列

var arr4 = [4] string

fmt.println(arr4) //[1 2 3 4]

for i := 0; i < len(arr4); i++

for index, value := range arr4

在golang中,切片的定義和陣列的定義是相似的,但需要注意的是,切片是引用資料型別且切片可以自動擴容

package main

import "fmt"

func main()

arr2 := arr1

arr2[0] = 0

fmt.println(arr1)

fmt.println(arr2)

fmt.printf("%t,%t \n",arr1,arr2)

}

go語言支援多維陣列,我們這裡以二維陣列為例(陣列中又巢狀陣列):

var 陣列變數名 [元素數量][元素數量] t
示例:

package main

import "fmt"

func main() ,}

fmt.println(array1) //[[1 2] [2 3]]

}

二維陣列遍歷

package main

import "fmt"

func main() ,}

fmt.println(array1) //[[1 2] [2 3]]

for i := 0; i < len(array1); i++

} // 1 2 2 3

for _, item := range array1

} // 1 2 2 3

}

2020 10 15Go語言切片

go 語言切片是對陣列的抽象。go 陣列的長度不可改變,在特定場景中這樣的集合就不太適用,go中提供了一種靈活,功能強悍的內建型別切片 動態陣列 與陣列相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。宣告切片型別的基本語法如下 var 切片名稱 元素型別示例 package m...

2020 10 15Go語言之函式

函式是組織好的 可重複使用 用於執行指定任務的基本 塊 go語言支援 函式 匿名函式和閉包 go語言中定義函式使用 func 關鍵字,具體格式如下 func 函式名 引數 返回值型別 package main import fmt func main 單返回值 計算 a b func sum a i...

Go語言 陣列

定義陣列的長度和型別,預設使用型別的零值進行初始化 var a1 10 int 不指定陣列的長度,指定型別,缺省會使用初始值設定陣列的長度 初始值有幾個,陣列長度就是幾 var a2 int 指定陣列的長度和型別,同時初始化全部或者部分的數字,元素會從前到後順序初始化 初始化時物件的數量不能大於陣列...