26 Go 語言中的陣列
阿新 • • 發佈:2020-06-25
1. 陣列的宣告
陣列的宣告形式形如var 陣列名 [陣列長度]陣列型別
,其中陣列型別可以是陣列本身,也就是陣列型別的陣列,這樣就構成了多維陣列。和變數的宣告相同,陣列在宣告時會初始化變數型別的零值。
程式碼示例
package main
import (
"fmt"
)
func main() {
var a [2]int
var b [2][2]int
var c = [2]int{1, 2}
var d = [...]int{3, 4}
fmt.Println("a的零值", a)
fmt.Println("b的零值", b)
fmt. Println("c的值", c)
fmt.Println("d的值", d)
}
- 第 8 行:宣告一個長度為2的一維陣列。自動初始化為零值;
- 第 9 行:宣告一個2行2列的二維陣列。自動初始化為零值;
- 第 10 行:宣告並定義一個長度為2,值為[1,2]的陣列;
- 第 11 行:使用
...
表示根據陣列後值的長度自動初始化長度。因為後面的值是 [3,4] 陣列自動初始化長度為 2。
執行結果:
2. 陣列的比較
在 Go 語言中判斷陣列是否相等需要比較兩個部分。一個是陣列的長度是否相等,另一個是陣列中存放的值是否順序和大小完全相同。只要這兩個部分相等,則 Go 語言中的兩個陣列就是相等的。
Tips:Go 語言中只有型別相同的陣列才可以互相比較,且陣列沒有大小的比較,只能比較是否相等。
程式碼示例:
package main
import (
"fmt"
)
func main() {
var a [2]int
var c = [2]int{1, 2}
var d = [...]int{1, 2}
fmt.Println("a == c ? ", a == c)
fmt.Println("c == d ?", c == d)
}
- 第 11 行:比較陣列 a 和陣列 b 是否相等。兩個陣列長度相同,是儲存的值不同,所以不相等;
- 第 12 行:比較陣列 c 和陣列 d 是否相等。兩個陣列長度相同,且儲存的值也相通,所以相等。
執行結果:
3. 小結
本文主要介紹了Go語言中陣列的使用,主要講解了以下幾點:
- 陣列宣告時就決定了長度,會自動初始化零值;
- 陣列可以使用
...
來自動初始化陣列的長度; - 陣列比較是否相等時必須是陣列長度和值完全相同才會相等。