陣列是具有相同唯一型別的一組已編號,且長度固定的資料項序列。這種型別可以使任意的原始型別例如 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 指定陣列的長度和型別,同時初始化全部或者部分的數字,元素會從前到後順序初始化 初始化時物件的數量不能大於陣列...