スイッチ

switch ステートメントは、if - else ステートメントのシーケンスを書くための短い方法です。これは、条件式と等しい値を持つ最初のケースを実行します。

Goのスイッチは、C、C++、Java、JavaScript、PHPのものと似ていますが、Goは選択されたケースのみを実行し、続くすべてのケースを実行しません。実際、他の言語で各ケースの最後に必要な break ステートメントは、Goでは自動的に提供されます。もう一つの重要な違いは、Goのスイッチケースは定数である必要がなく、関与する値は整数である必要がないことです。

  1. package main
  2. import (
  3. "fmt"
  4. "runtime"
  5. )
  6. func main() {
  7. fmt.Print("Go runs on ")
  8. switch os := runtime.GOOS; os {
  9. case "darwin":
  10. fmt.Println("OS X.")
  11. case "linux":
  12. fmt.Println("Linux.")
  13. default:
  14. // freebsd, openbsd,
  15. // plan9, windows...
  16. fmt.Printf("%s.\n", os)
  17. }
  18. }