ホームページ >バックエンド開発 >Golang >Go で関数呼び出しを使用して定数を初期化できないのはなぜですか?

Go で関数呼び出しを使用して定数を初期化できないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-19 12:37:16786ブラウズ

Why Can't I Use a Function Call to Initialize a Constant in Go?

定数変数の初期化

関数呼び出しを定数 KILO に割り当てようとすると、エラーが発生します。これは、定数宣言はコンパイル時に評価する必要があるため、関数呼び出しを含めることはできないためです。定数式には、リテラル値、定数識別子、および unsafe.Sizeof() などの特定の組み込み関数が含まれます。

Go 仕様によれば、「定数式には定数オペランドのみを含めることができ、コンパイル時に評価されます。」したがって、通常、定数宣言内で関数を呼び出すことはできません。

定数 KILO を初期化するには、関数呼び出しの代わりに整数または浮動小数点リテラルを使用します。

const Kilo = 1000  // Integer literal

または:

const Kilo = 1e3   // Floating-point literal

関数を使用して計算する必要がある場合は、定数の代わりに変数を作成することもできます。 value:

var Kilo = math.Pow10(3)

unsafe.Sizeof()、cap、len などの一部の組み込み関数は定数宣言で使用できることに注意してください。ただし、 math.Pow10() などのランタイム実行を伴う関数呼び出しは許可されません。

以上がGo で関数呼び出しを使用して定数を初期化できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。