Golang での Const 変数の初期化
Golang で定数を定義する場合、コンパイル エラーを避けるために言語の厳密な規則に従うことが重要です。このようなエラーの 1 つは、関数呼び出しで const 変数を初期化しようとしたときに発生します。
次のコードを考えてみましょう:
const KILO = math.Pow10(3)
このコードでは、次のエラーが生成されます: "constInitializer math.Pow10(3) ) は定数ではありません。"
理由エラー:
このエラーの背後にある理由は、関数呼び出しは実行時に実行されるのに対し、const 変数はコンパイル時に評価する必要があることです。したがって、関数を定数宣言の一部にすることはできません。これは、プログラムの動作の整合性と予測可能性を維持するためです。
解決策:
const 変数を固定値で初期化するには、定数式を使用します。定数式は、コンパイル時に完全に評価できる式であり、定数と定義済み関数で構成されます。
有効な定数式の例をいくつか示します。
const Kilo = 1000 // Integer literal const Kilo = 1e3 // Floating-point literal
あるいは、本当に値を動的に計算する必要がある場合は、定数ではなく変数に格納する必要があります。例:
var Kilo = math.Pow10(3)
補足:
unsafe.Sizeof() など、定数宣言で使用できる組み込み関数がいくつかあります。 、レン、キャップ。ただし、これらの関数は定数の結果として評価される必要があります。
Golang の定数の包括的な理解については、「定数」というタイトルの公式 Go ブログ投稿を参照してください。
以上が関数呼び出しで Golang の「const」変数を初期化できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。