😀

[Go] untyped constant 型無し定数って何なの?

2024/12/19に公開

普通Goでの定数というのは下記のように定数宣言の後型を書きますが、

const c int = 100
//またはこのように複数宣言
const (
    a int = 1
    b int = 2
    d string = "あいうえお"
)

たまに下記のように型がない定数宣言があります。

const c = 100
const (
    a = 1
    b = 2
    d = "あいうえお"
)

これはuntyped constantといい型のない定数です。
厳密に言うと永久に型がないわけではなく
宣言された型無し定数が使われたときに型が推論され型が決まります。
変数宣言でいう a := 1のようなもののようです。

An untyped constant has a
default type which is the type to which the constant is implicitly converted in contexts where a typed value is required, for instance, in a short variable declaration such as i := 0 where there is no explicit type.

https://go.dev/ref/spec#Constants

Discussion