Go言語(golang)のswitch文

※当サイトではアフィリエイト広告を利用しています

Go言語(golang)のswitch文

switch文の使い方を説明します。Tour of Goを参考にしています。

switchを使えば複数条件の条件分岐が簡単に行えます。

Go言語(golang)のswitch文の使い方

Golangのswitch文は、複数の条件を簡潔に処理するために使用されます。以下に基本的なswitch文の形式を示します。

package main

import "fmt"

func main() {
    day := "Saturday"

    switch day {
    case "Monday":
        fmt.Println("月曜日")
    case "Tuesday":
        fmt.Println("火曜日")
    case "Wednesday":
        fmt.Println("水曜日")
    case "Thursday":
        fmt.Println("木曜日")
    case "Friday":
        fmt.Println("金曜日")
    case "Saturday":
        fmt.Println("土曜日")
    case "Sunday":
        fmt.Println("日曜日")
    default:
        fmt.Println("無効な曜日")
    }
}

結果

土曜日

この例では、変数dayの値に基づいて異なる条件が評価され、該当する条件がある場合に対応するブロックが実行されます。default節はどの条件にも一致しない場合のデフォルトの処理を提供します。

switch文で変数を指定する

switch文では条件部分に式を指定せずにswitchの後に変数を指定することもできます。その場合、各caseの条件は変数の値と比較されます。

package main

import "fmt"

func main() {
    num := 10

    switch {
    case num < 0:
        fmt.Println("負の数")
    case num == 0:
        fmt.Println("ゼロ")
    case num > 0:
        fmt.Println("正の数")
    default:
        fmt.Println("ゼロ以外の数")
    }
}

結果

正の数

この例では、変数numの値に基づいて条件を判定しています。switch文は上から順に条件を評価し、最初に一致した条件のブロックを実行します。

switch文で型を判定する

Golangのswitch文を使用して型を確認するには、switch文の条件部分に.(type)を使います。これはType Assertionの一部です。以下は具体的な例です。

package main

import "fmt"

func checkType(x interface{}) {
    switch value := x.(type) {
    case int:
        fmt.Println("整数型:", value)
    case float64:
        fmt.Println("浮動小数点型:", value)
    case string:
        fmt.Println("文字列型:", value)
    default:
        fmt.Println("未知の型")
    }
}

func main() {
    checkType(42)
    checkType(3.14)
    checkType("Hello, Golang!")
    checkType(true)
}

この例では、checkType関数を通じてswitch文で変数の型を確認しています。.(type)を使うことで、具体的な型に基づいて条件を分岐させることができます。これは主にインターフェース型 (interface{}) を使用する場合に便利です。

ただし、できる限り型アサーションを避け、型安全なコードを書くことが推奨されています。

型アサーションはエラーを引き起こす可能性があり、適切なエラーハンドリングが必要です。型安全な設計を心がけることで、プログラムの信頼性が向上します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

テック企業でプレイングマネージャーをしている Jun です。プログラミングの基礎をはじめ、組織やマネジメントについてブログを書いています。ハードスキル、ソフトスキルどちらも磨きたい方を対象にしています。一緒に学んで人生を楽しくしていきましょう!