1. 程式人生 > GO語言入門 >26 Go 語言中的陣列

26 Go 語言中的陣列

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語言中陣列的使用,主要講解了以下幾點:

  • 陣列宣告時就決定了長度,會自動初始化零值;
  • 陣列可以使用...來自動初始化陣列的長度;
  • 陣列比較是否相等時必須是陣列長度和值完全相同才會相等。