本文へスキップ
BecomeCoder

Goコース · 第1章 Goをはじめる · レッスン2

変数と型 ― var と :=

ブラウザで完結

導入

値に名前を付けて使い回すのが 変数 です。Go は静的型付けの言語で、変数にはあらかじめ型(整数・文字列など)が決まります。ただし多くの場面で型は自動推論されるので、記述はスッキリしています。

説明

変数の宣言には var を使う方法と、関数の中だけで使える短縮形 := があります。

package main

import "fmt"

func main() {
    var name string = "Go"
    var version = 1.22      // 型は右辺から推論される(float64)
    count := 3              // := は var+推論の短縮形(関数内でのみ使える)

    fmt.Println(name, version, count)
}
  • var name string = "Go" … 型を明示した宣言。
  • var version = 1.22 … 型を書かなければ右辺から推論されます。
  • count := 3 … もっとも使われる書き方。var count = 3 と同じ意味ですが、関数の外では使えません。

Go の主な基本型は次のとおりです。

用途
int整数42
float64小数3.14
string文字列"hello"
bool真偽値true / false

宣言したのに使わない変数があると、Go はコンパイルエラーにします。「未使用の変数を残さない」ことが言語レベルで強制されるのが特徴です。

やってみよう

count := 3 の下に count = 10 と書くと値が更新されます。一方 := を2回書く(count := 10)と「すでに宣言済み」でエラーになります。宣言は :=、再代入は = と覚えましょう。

実際に動かしてみよう

下のエディタにGoを書いて「実行」を押すと、学習用シミュレータが fmt の出力を表示します(本物のGoコンパイラではなく、教材の範囲を再現した軽量エンジンです)。スライス・マップ・構造体・インターフェース・goroutine/channel なども動きます。本文の例を書き換えて動かしてみましょう(並行処理の実行順は決定的に再現しているため、本物のインターリーブとは異なる場合があります)。

Go — ブラウザ内で実行(学習用シミュレータ)

Goの教材サブセットを動かす学習用シミュレータを読み込みます(本物のGoコンパイラではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。