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{}
) を使用する場合に便利です。
ただし、できる限り型アサーションを避け、型安全なコードを書くことが推奨されています。
型アサーションはエラーを引き起こす可能性があり、適切なエラーハンドリングが必要です。型安全な設計を心がけることで、プログラムの信頼性が向上します。