キーワード

Goのvarキーワードについて解説:基本の使い方と実例

Goでは変数宣言にvarキーワードを使用します。

本記事では、すでに開発環境が整っている方向けに、varの基本的な使い方や特徴をシンプルな実例を交えて解説します。

varキーワードの基本構文

Go言語では、変数宣言にキーワードvarを使用します。

ここでは基本の文法について、シンプルな実例とともに解説します。

var宣言の基本文法

単一変数の宣言方法

単一の変数を宣言する場合、varキーワードに続けて変数名と型を記述します。

値を後から代入するか、初期値を同時に代入することができます。

例えば、整数型の変数を宣言してから値を代入する例は以下のようになります。

package main
import "fmt"
func main() {
    // 整数型の変数numを宣言
    var num int
    // 変数numに値を代入
    num = 10
    fmt.Println("num =", num)
}
num = 10

型指定と型推論の利用

var宣言では、変数の型を明示的に記述する方法と、初期値を与えて型推論に任せる方法があります。

例えば、初期値を与えることで変数の型を自動で決定させる場合は以下のように書くことができます。

package main
import "fmt"
func main() {
    // 初期値10から型推論によりnumの型はintとなる
    var num = 10
    fmt.Println("num =", num)
}
num = 10

シンプルな実例紹介

それぞれの基本構文を簡単なサンプルで実際に確認します。

ここでは整数型と文字列型の例を示します。

整数型の宣言例

整数型の場合、初期値を設定することで変数の型は自動的にintとして扱われます。

または型指定を用いることも可能です。

package main
import "fmt"
func main() {
    // 型推論を利用して整数型の変数を宣言
    var count = 100
    fmt.Println("count =", count)
    // 型指定を用いた整数型の宣言
    var year int = 2023
    fmt.Println("year =", year)
}
count = 100
year = 2023

文字列型の宣言例

文字列型の変数も同様に、初期値を与えることで自動推論が可能ですし、型指定も行えます。

package main
import "fmt"
func main() {
    // 型推論を利用し文字列型の変数を宣言
    var greeting = "こんにちは"
    fmt.Println("greeting =", greeting)
    // 型指定を用いた文字列型の宣言
    var language string = "Go"
    fmt.Println("language =", language)
}
greeting = こんにちは
language = Go

複数変数の同時宣言

Go言語では、一度に複数の変数を宣言することも可能です。

ここでは、一行宣言と改行宣言の違いや、異なる型を同時に宣言する例を紹介します。

一行宣言と改行宣言の違い

一行で複数の変数を宣言する場合は、カンマで区切る書き方ができます。

改行宣言を使うと可読性が向上する場面で便利です。

以下は、一行と改行での宣言方法の実例です。

package main
import "fmt"
func main() {
    // 一行で複数の変数を宣言(同じ型の場合)
    var x, y, z int = 1, 2, 3
    fmt.Println("x =", x, "y =", y, "z =", z)
    // 複数行に分けた宣言
    var (
        a int = 10
        b int = 20
        c int = 30
    )
    fmt.Println("a =", a, "b =", b, "c =", c)
}
x = 1 y = 2 z = 3
a = 10 b = 20 c = 30

異なる型の変数宣言例

一度に異なる型の変数を宣言する場合、グループ宣言を使うとスマートに記述できます。

例えば、整数型と文字列型、浮動小数点型を同時に宣言する例は以下の通りです。

package main
import "fmt"
func main() {
    var (
        num    int     = 42       // 整数型
        text   string  = "Go言語" // 文字列型
        ratio  float64 = 3.14     // 浮動小数点型
    )
    fmt.Println("num =", num, "text =", text, "ratio =", ratio)
}
num = 42 text = Go言語 ratio = 3.14

初期化とゼロ値の活用

Goでは、変数宣言時に初期値を省略すると、型ごとに定義されたゼロ値が自動的に設定されます。

ここでは、初期値の省略とゼロ値の動作、そして初期化例の比較について説明します。

初期値の省略と自動設定

変数宣言時に初期値を与えなかった場合、型ごとにデフォルトの値が設定されます。

ゼロ値の基本動作

  • 整数型の場合:ゼロ値は0
  • 浮動小数点型の場合:ゼロ値は0.0
  • 文字列型の場合:ゼロ値は空文字""
  • ブール型の場合:ゼロ値はfalse

以下はこれらのゼロ値が実際にどのように働くかを示すサンプルコードです。

package main
import "fmt"
func main() {
    var intVar int       // ゼロ値は0
    var floatVar float64 // ゼロ値は0.0
    var strVar string    // ゼロ値は""
    var boolVar bool     // ゼロ値はfalse
    fmt.Println("intVar =", intVar)
    fmt.Println("floatVar =", floatVar)
    fmt.Println("strVar =", strVar)
    fmt.Println("boolVar =", boolVar)
}
intVar = 0
floatVar = 0
strVar =
boolVar = false

初期化例の比較

初期値を付ける場合と付けない場合の動作の違いを確認しましょう。

以下のコードでは、初期化済みの変数とゼロ値が自動設定された変数を比較しています。

package main
import "fmt"
func main() {
    // 初期値を与えて宣言
    var initialized int = 100
    // 初期値を省略して宣言(ゼロ値が設定される)
    var uninitialized int
    fmt.Println("initialized =", initialized)
    fmt.Println("uninitialized =", uninitialized) // ゼロ値の0が出力される
}
initialized = 100
uninitialized = 0

実践的な使用例と注意点

ここでは、実際のコード例を通じてvarキーワードの利用方法と注意点を解説します。

実例コードの詳細解説

代表的なコード例の説明

以下のコードは、varキーワードを利用した基本的なサンプルプログラムになります。

サンプルコード内に日本語のコメントを追加しており、どの部分でどの操作が行われているかが分かりやすい作りとなっています。

package main
import "fmt"
func main() {
    // 複数の変数を宣言し、初期化を行う
    var (
        age     int     = 30         // 整数型の変数age
        name    string  = "Alice"    // 文字列型の変数name
        balance float64 = 250.75     // 浮動小数点型の変数balance
    )
    // 変数の値を出力する
    fmt.Println("名前:", name)
    fmt.Println("年齢:", age)
    fmt.Println("残高:", balance)
}
名前: Alice
年齢: 30
残高: 250.75

var使用時のポイント

再代入や宣言の制約について

varキーワードで宣言した変数は再代入が可能ですが、宣言後の型変更はできません。

また、同一のスコープ内で同じ名前の変数を複数回宣言することはエラーとなります。

以下の例で確認してください。

package main
import "fmt"
func main() {
    // 変数numを宣言し初期化する
    var num int = 5
    fmt.Println("初期値 num =", num)
    // numに新たな値を再代入する
    num = 15
    fmt.Println("再代入後 num =", num)
    // 同一スコープ内での変数の重複宣言はエラーとなるため注意が必要です
    // var num int = 20 // コメントアウト。エラーとなるためそのまま記述していません。
}
初期値 num = 5
再代入後 num = 15

まとめ

この記事では、Go言語におけるvarキーワードの基本構文を単一変数および複数変数の同時宣言、型指定と型推論、初期化やゼロ値の活用、さらに実例コードを通して解説しました。

全体を通して、変数宣言の基本的な使い方と注意点をシンプルかつ実践的に理解できる内容となっています。

ぜひ、実際の開発に取り入れてGoプログラミングの基礎力をさらに高めてみてください。

関連記事

Back to top button
目次へ