golangの日記

Go言語を中心にプログラミングについてのブログ

Go言語(golang) 変数と定数

golang.png


Go言語の変数と定数の宣言と値の代入について





目次



変数の宣言と代入


var に続けて 変数名 型 で宣言し、代入演算子 = で値をセットします。
変数名にはアルファベット小文字/大文字とアンダーバー「_」、先頭以外には数字が使えます。

package main

func main() {
    var integer int

    // printlnは出力するための関数。
    // 変数の値(ゼロ値)が出力される
    println(integer) // 0 と表示される

    // 変数に数値を代入
    integer = 100

    // 変数の値を出力する
    println(integer) // 100 と表示される

    // 再代入。値の変更
    integer = 200
    println(integer) // 200 と表示される
}


変数に値を代入してない状態では型それぞれのゼロ値になっている。

ゼロ値

string型であれば空文字 ""
int型(数値型)であれば 0
bool型であれば false


まとめて宣言する

package main

func main() {
    // 同じ型の変数は一行で宣言できる
    var a, b, c int

    println(a, b, c)


    // () で囲んでまとまり感を出す
    var (
        d int
        e int
        f int
    )

    println(d, e, f)


    // これも同じ型であれば一行で書ける
    var (
        g, h, i int
        j, k, l string
    )

    println(g, h, i, j, k, l)
}



宣言と代入を一度に行う


型を省略した場合は、型推論によって代入された値から自動的に型が決まる

package main

func main() {
    var integer int = 100
    println(integer) // 100

    // 型名は省略可能
    var number = 200
    println(number) // 200

    // varも省略可能。 = の前に : をつける
    numeric := 300
    println(numeric) // 300
}



多重代入


変数名と値をそれぞれカンマ区切りで書くことで、一行で複数の変数を宣言/代入できる

package main

func main() {
    x, y := 100, 200
    println(x, y) // 100, 200
}



定数


定数は const に続けて定数名と型を書きます。型名は省略可能
定数名は基本的に先頭の文字にアルファベット大文字を使います。
また、定数は変数と違って値の変更(再代入)ができません。

package main

func main() {
    const Integer = 100
    println(Integer) // 100

    // 値を変更しようとするとエラーになる
    // Integer = 200 // cannot assign to Integer
}