The Go Programming Language Specificationの翻訳、4回目です。
前回までの訳はGo言語仕様[日本語訳]にまとめてあります。
定数
定数にはブーリアン定数、整数定数、浮動小数点定数、文字列定数があります。整数定数と浮動小数点定数はまとめて数値定数とも呼ばれます。
定数の値は整数リテラル、 浮動小数点リテラル、 文字リテラル、文字列リテラル、定数を示す識別子、定数式、unsafe.Sizeof
のような組み込み関数からの戻り値、配列のcap
またはlen
、文字列定数のlen
によって表されます。ブーリアンの真理値は事前宣言済み定数true
およびfalse
によって表されます。事前宣言済み識別子iotaは整数リテラルを表します。
数値定数はサイズを持たず、またオーバーフローすることがない任意精度の値を表します。
定数には型を持つもの、持たないものがあります。リテラル定数、true
、false
、iota
、および”定数式内の全オペランドが型を持たない定数”のときは、定数は型を持ちません。
定数は定数の宣言または変換によって明示的に、または変数の宣言・代入・式のオペランドで使われるときに暗黙的に、型が付与されます。ただし定数の値が、各型の値を正確に表現することができなければエラーとなります。例えば、3.0
はすべての整数型もしくは浮動小数点型にすることができます。しかし、2147483648.0
(1<<31
と同値)はfloat32
型、float64
型、uint32
型にはできますが、int32
型やstring
型にはできません。
実装の制約:コンパイラは数値定数の内部表現に最小でもマシンの倍のビット数を使います。浮動小数点の値については、仮数部と指数部それぞれが倍になります。
Comments