Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. Go辞典
  3. 変数宣言 / 短縮宣言

変数宣言 / 短縮宣言

Goで変数を宣言するには『var』キーワードと短縮宣言演算子『:=』の2つの方法があります。用途に応じて使い分けることが重要です。

構文
// var を使った宣言(型を明示)
var 変数名 型
var 変数名 型 = 値

// var を使った宣言(型推論)
var 変数名 = 値

// 短縮宣言演算子(関数内でのみ使用可)
変数名 := 値

// 複数変数を同時に宣言
var x, y int = 1, 2
a, b := 10, 20
構文一覧
構文概要
var name type型を明示して変数を宣言します。初期値はゼロ値になります。
var name type = value型と初期値を指定して変数を宣言します。
var name = value型推論を使って変数を宣言します。右辺の値から型が決まります。
name := value短縮宣言演算子です。関数内でのみ使用でき、型推論で宣言と代入を同時に行います。
var ( ... )複数の変数をまとめて宣言するブロック構文です。パッケージレベルでよく使われます。
サンプルコード
package main

import "fmt"

// パッケージレベルではvarを使う(:=は使えない)
var appName string = "MyApp"
var version = 1.0 // 型推論

func main() {
	// 関数内ではどちらも使える
	var msg string = "こんにちは"
	lang := "Go" // 短縮宣言(最もよく使われる)

	// 複数変数の同時宣言
	var x, y int = 10, 20
	a, b := 100, 200

	fmt.Println(appName, version)
	fmt.Println(msg, lang)
	fmt.Println(x, y)
	fmt.Println(a, b)

	// varブロック
	var (
		name = "田中"
		age  = 30
	)
	fmt.Println(name, age)
}
概要

関数内では『:=』による短縮宣言が最も簡潔で、Goのコードでは一般的に使われます。一方、パッケージレベル(関数の外)では『var』しか使えません。

型推論により、Goは右辺の値から自動的に型を決定します。例えば『x := 42』ならば『int』型、『x := 3.14』ならば『float64』型になります。型を明示したい場合やゼロ値で初期化したい場合は『var』を使うとよいでしょう。

『:=』は必ず新しい変数を1つ以上含む必要があります。すでに宣言済みの変数だけを左辺に書くとコンパイルエラーになります。また、宣言したが一度も使用しない変数があるとコンパイルエラーになる点もGoの特徴です。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。