數(shù)組是一個可以存放相同數(shù)據(jù)類型數(shù)據(jù)的定長序列。由于數(shù)組是定長的,在使用場景并不豐富,所以在 Go 語言中通常使用的是切片(Slice)。想要使用切片,就先要了解數(shù)組,所以在本文先介紹 Go 語言中數(shù)組的使用。
1. 數(shù)組的聲明
數(shù)組的聲明形式形如var 數(shù)組名 [數(shù)組長度]數(shù)組類型
,其中數(shù)組類型可以是數(shù)組本身,也就是數(shù)組類型的數(shù)組,這樣就構(gòu)成了多維數(shù)組。和變量的聲明相同,數(shù)組在聲明時會初始化變量類型的零值。
代碼示例
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的一維數(shù)組。自動初始化為零值;
- 第 9 行:聲明一個2行2列的二維數(shù)組。自動初始化為零值;
- 第 10 行:聲明并定義一個長度為2,值為[1,2]的數(shù)組;
- 第 11 行:使用
...
表示根據(jù)數(shù)組后值的長度自動初始化長度。因為后面的值是 [3,4] 數(shù)組自動初始化長度為 2。
執(zhí)行結(jié)果:
2. 數(shù)組的比較
在 Go 語言中判斷數(shù)組是否相等需要比較兩個部分。一個是數(shù)組的長度是否相等,另一個是數(shù)組中存放的值是否順序和大小完全相同。只要這兩個部分相等,則 Go 語言中的兩個數(shù)組就是相等的。
Tips:Go 語言中只有類型相同的數(shù)組才可以互相比較,且數(shù)組沒有大小的比較,只能比較是否相等。
代碼示例:
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 行:比較數(shù)組 a 和數(shù)組 b 是否相等。兩個數(shù)組長度相同,是存儲的值不同,所以不相等;
- 第 12 行:比較數(shù)組 c 和數(shù)組 d 是否相等。兩個數(shù)組長度相同,且存儲的值也相通,所以相等。
執(zhí)行結(jié)果:
3. 小結(jié)
本文主要介紹了Go語言中數(shù)組的使用,主要講解了以下幾點:
- 數(shù)組聲明時就決定了長度,會自動初始化零值;
- 數(shù)組可以使用
...
來自動初始化數(shù)組的長度; - 數(shù)組比較是否相等時必須是數(shù)組長度和值完全相同才會相等。