variables

variables

Go言語の変数について学ぶ:変数の宣言、型、スコープ、値の代入


1. はじめに

Go言語では、プログラム内でデータを扱うために変数を使用します。本記事では、以下の内容について詳しく学びます。

  • 変数の宣言方法
  • 変数の型と型推論
  • 変数のスコープ(有効範囲)
  • 変数への値の代入
  • 実際のコードを用いたハンズオン

Goの変数の仕組みを理解すれば、より効率的にプログラムを書くことができます。


2. 変数の宣言方法

2.1 var キーワードを使う方法

Goでは var を使って変数を宣言します。

package main
import "fmt"

func main() {
    var message string // 変数の宣言(デフォルト値は空文字)
    message = "Hello, Go!" // 値の代入
    fmt.Println(message)
}
  • var 変数名 型 の形で宣言
  • string 型の変数 message を宣言
  • message"Hello, Go!" を代入

2.2 型推論(:= を使う方法)

Goでは := を使うことで型を省略し、推論させることができます。

package main
import "fmt"

func main() {
    message := "Hello, Go!" // 型推論による変数宣言
    fmt.Println(message)
}
  • := を使うと var を省略できる
  • 右辺の値から string 型と推論

2.3 複数の変数を一括で宣言

複数の変数を一括で宣言することも可能です。

package main
import "fmt"

func main() {
    var a, b, c int // すべて int 型
    a, b, c = 1, 2, 3
    fmt.Println(a, b, c)
}

また、異なる型の変数も一括宣言できます。

package main
import "fmt"

func main() {
    var (
        name  string = "Alice"
        age   int    = 25
        score float64 = 89.5
    )
    fmt.Println(name, age, score)
}

3. 変数の型

Goは静的型付け言語であり、変数の型はコンパイル時に決まります。代表的な型は以下の通りです。

説明
int整数var x int = 10
float64浮動小数点数var y float64 = 3.14
string文字列var msg string = "Go"
bool真偽値var flag bool = true
runeUnicode 文字var char rune = 'A'
byte8ビット符号なし整数var b byte = 255

4. 変数のスコープ(有効範囲)

変数のスコープとは、どこで変数を使えるかを指します。

4.1 関数内のローカル変数

関数内で宣言した変数は、その関数内でのみ有効です。

package main
import "fmt"

func printMessage() {
    message := "Hello from function!"
    fmt.Println(message)
}

func main() {
    printMessage()
    // fmt.Println(message) // これはエラー(スコープ外)
}

4.2 グローバル変数

関数の外で宣言された変数は、プログラム全体で使用できます。

package main
import "fmt"

var globalMessage = "I am global"

func printGlobal() {
    fmt.Println(globalMessage) // OK
}

func main() {
    printGlobal()
    fmt.Println(globalMessage) // OK
}

4.3 ブロック内の変数

ブロック {} 内で宣言した変数は、そのブロック内のみ有効です。

package main
import "fmt"

func main() {
    if true {
        x := 10
        fmt.Println(x) // OK
    }
    // fmt.Println(x) // これはエラー(スコープ外)
}

5. 変数への値の代入

変数に値を代入する方法を説明します。

5.1 初期化と代入

var number int = 42  // 初期化
number = 100         // 値の変更

5.2 定数と変数の違い

定数 const は値を変更できません。

const pi = 3.14
// pi = 3.1415 // これはエラー

6. ハンズオン:変数を使ってみる

以下のコードを実行し、変数の使い方を確認しましょう。

package main
import "fmt"

var globalVar = "Global Variable"

func main() {
    localVar := "Local Variable"
    
    var number int = 10
    number = 20 // 値の変更
    
    fmt.Println(globalVar)
    fmt.Println(localVar)
    fmt.Println("Number:", number)

    printScopedVariable()
}

func printScopedVariable() {
    scopedVar := "Scoped Variable"
    fmt.Println(scopedVar)
}

実行結果:

Global Variable
Local Variable
Number: 20
Scoped Variable

7. この記事を読んでできるようになること

  • Goの変数の宣言方法 (var:=)
  • 型を理解し、適切に変数を使う
  • スコープを意識したコードを書く
  • 変数の値を変更・代入する

これで、Goの変数の基本をしっかり学ぶことができました!次のステップでは、配列やスライス、マップを使ったデータ管理に進んでいきましょう。