Go 語言中的數組
數組是一個可以存放相同數據類型數據的定長序列。由于數組是定長的,在使用場景并不豐富,所以在 Go 語言中通常使用的是切片(Slice)。想要使用切片,就先要了解數組,所以在本文先介紹 Go 語言中數組的使用。
1. 數組的聲明
數組的聲明形式形如var 數組名 [數組長度]數組類型
,其中數組類型可以是數組本身,也就是數組類型的數組,這樣就構成了多維數組。和變量的聲明相同,數組在聲明時會初始化變量類型的零值。
代碼示例
代碼塊
- 1?
package main
- 2
- 3?
import (
- 4? ? ? ?
"fmt"
- 5?
)
- 6
- 7?
func main() {
- 8? ? ? ? ?
var a [2]int
- 9? ? ? ? ?
var b [2][2]int
- 10? ? ? ?
var c = [2]int{1, 2}
- 11? ? ? ?
var d = [...]int{3, 4}
- 12? ?? ??
fmt.Println("a的零值", a)
- 13? ?? ??
fmt.Println("b的零值", b)
- 14? ? ? ?
fmt.Println("c的值", c)
- 15? ? ? ?
fmt.Println("d的值", d)
- 16?
}
- 第 8 行:聲明一個長度為2的一維數組。自動初始化為零值;
- 第 9 行:聲明一個2行2列的二維數組。自動初始化為零值;
- 第 10 行:聲明并定義一個長度為2,值為[1,2]的數組;
- 第 11 行:使用?
...
?表示根據數組后值的長度自動初始化長度。因為后面的值是 [3,4] 數組自動初始化長度為 2。
執行結果:
2. 數組的比較
在 Go 語言中判斷數組是否相等需要比較兩個部分。一個是數組的長度是否相等,另一個是數組中存放的值是否順序和大小完全相同。只要這兩個部分相等,則 Go 語言中的兩個數組就是相等的。
Tips:Go 語言中只有類型相同的數組才可以互相比較,且數組沒有大小的比較,只能比較是否相等。
代碼示例:
代碼塊
- 1 ?
package main
- 2
- 3?
import (
- 4? ? ? ? ? ?
"fmt"
- 5 ?
)
- 6
- 7?
func main(){
- 8? ?? ?? ??
var a [2]int
- 9? ? ? ? ??
var c = [2]int{1, 2}
- 10? ? ?? ??
var d = [...]int{1, 2}
- 11? ? ?? ??
fmt.Println("a == c ? ", a == c)
- 12? ? ?? ?
fmt.Println("c == d ?", c == d)
- 13?
}
- 第 11 行:比較數組 a 和數組 b 是否相等。兩個數組長度相同,是存儲的值不同,所以不相等;
- 第 12 行:比較數組 c 和數組 d 是否相等。兩個數組長度相同,且存儲的值也相通,所以相等。
執行結果:
3. 小結
本文主要介紹了Go語言中數組的使用,主要講解了以下幾點:
- 數組聲明時就決定了長度,會自動初始化零值;
- 數組可以使用
...
來自動初始化數組的長度; - 數組比較是否相等時必須是數組長度和值完全相同才會相等。
文章來源于網絡,侵刪!