Go 中的常量陣列

Jay Singh 2023年1月30日 2022年4月22日
  1. 在 Go 中使用 const 函式檢查常量陣列
  2. 在 Go 中使用 [...] 運算子宣告常量陣列
Go 中的常量陣列

Go 開發人員相當擅長使用全域性常量而不是全域性變數進行設定。但是,在構造一些更復雜型別的常量版本時,我們遇到了一個問題。

我們不能使用 Go 編譯器來建立陣列、對映或切片常量。

Go 中的常量就是:常量。即使在函式中指定為區域性變數,它們也是在編譯時構造的,並且只能是整數、字元(符文)、字串或布林值。

由於編譯時的限制,定義它們的表示式必須是編譯器可以計算的常量表示式。

本文將討論建立常量陣列的替代方法。

在 Go 中使用 const 函式檢查常量陣列

Go 不支援常量陣列和切片。這是因為在 Go 中,常量值是在構建時生成的。

在執行時,總是評估陣列或切片。因此,以下程式會產生編譯錯誤。

package main

import "fmt"

func main() {
    const a = [1]int{1}
    fmt.Println(const a)
}

輸出:

const initializer [1]int literal is not a constant

在 Go 中使用 [...] 運算子宣告常量陣列

使用 [...] 而不是 [] 可確保你獲得(固定大小)陣列而不是切片。結果,值不是固定的,而是大小。

package main

import "fmt"

func main() {
    a := [...]int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    fmt.Println(a)
}

輸出:

[1 2 3 4 5 6 7 8 9]

相關文章 - Go Array