var <arrayName> [n]<type>
, 其中 n >= 0;package basic import "fmt" func DeclaratArray(){ // 定義指定長度的數組 var arr1 [5]int fmt.Println(arr1) // [0 0 0 0 0] // 不設置數組長度 arr2 := [...]int{} fmt.Println(arr2) // [] // 定義指定長度的數組,並賦值 arr3 := [2]int{ 1, 5 } fmt.Println(arr3) // [1 5] }
new
關鍵字聲明數組,返回一個指向該數組的指針;package basic import "fmt" func DeclaratArrayByNew(){ // 經過 new 聲明數組 ,返回一個指向該數組的指針 arr1 := new([5]int) fmt.Println(arr1) // &[0 0 0 0 0] }
指向數組的指針 與 指針數組的區別是:git
數組長度也是數組類型的一部分,所以具備不一樣長度的數組爲不一樣類型。github
Go 語言中的數組是值類型的,也就意味着兩個相同類型的數組能夠使用 ==
或 !=
運算符判斷兩個數組是否相等,可是不能使用 <
或 >
運算符;golang
package basic import "fmt" func JudgeArray(){ arr1 := [5]int{1, 3, 5} arr2 := [5]int{2, 4, 6} fmt.Println(arr1 == arr2) // false fmt.Println(arr1 != arr2) // true }
因爲數組是值類型,所以向一個函數傳遞數值時,須要傳遞一個指向該數組的指針,才能在函數內更改該數組的值;數組
package main import "fmt" // 更改數組內的值 func UpdateArray(array *[5]int){ array[0] = 100 } func main(){ array := [5]int{1, 3, 4, 5} UpdateArray(&array) fmt.Println(array) // [100 3 4 5 0] }
實際上在 Go 語言中通常不直接使用數組,而是使用切片。函數
package basic import "fmt" func MultidimensionalArray() { array := [2][3]int{ {1, 3, 5}, {2, 4, 6}, } fmt.Println(array) // [[1 3 5] [2 4 6]] }