Go の定数配列

Jay Singh 2023年1月30日 2022年8月23日
  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