Goの型switchは、switch文と同じように型を使ったものです。
本記事では、Golangの型switchについて詳しく説明します。また、switch文についてもまとめて解説します。
switch文とは?
switch文は、ある条件にマッチするかどうかをチェックし、そのマッチした値に対して特定のコードを実行する制御構文です。
switch文は、if-elseブロックのように動作します。
package main
import (
"fmt"
)
func test(s string) {
switch s {
case "a":
fmt.Println("A")
case "b":
fmt.Println("B")
case "c":
fmt.Println("C")
case "d":
fmt.Println("D")
default:
fmt.Println("Hello, World")
}
}
func main() {
test("b") // B
test("abc") // Hello, World
}
上記のコードでは、最初に渡される値は “b”であり、2番目のcase文にマッチします。
その次の”abc”では、どのケースにもマッチしません。
型switchの使い方
型switchは、通常の値の代わりに、ンターフェース値の形でタイプを指定するスイッチブロックです。
そして、その型を照合してチェックし、演算を実行します。
以下は型switchを使用したコード例です。
package main
import (
"fmt"
)
func test(i interface{}) string {
switch i.(type) {
case string:
return "string"
case int:
return "number"
default:
return "Other"
}
}
func main() {
var a interface{} = "文字列です"
fmt.Println(test(a)) // string
}
なぜ型switchは重要なのか?
型switchを使うと、特定の型に対して特定の処理を実行することができます。
これにより、コードを簡潔かつ正しく書くことができるため、非常に重要な機能です。
型switchとswitch case構文
型switchは、switch case構文と大差ありません。型スイッチが型のチェックと型固有のコードの実行に使われることを除けば、本質的に同じものです。
これが型switchを本当に便利にしている点です。
一方で、通常のスイッチは型を使わずに値を使用します。
Golangにおける型switchの使う場面
if-elseブロックが値の型と一緒に使われようとしているところでは、型switchも使うことができます。