Golang: switch/case

By Xah Lee. Date: . Last updated: .

Switch statement lets you test if a condition is met. It goes thru case statement, if true, that case's statement is executed, and switch exits.

package main

import "fmt"

func main() {
    switch 3 {
    case 4:
        fmt.Println("aa")
    case 3:
        fmt.Println("bb")
    default:
        fmt.Println("dd")
    }
}

// bb

case fallthrough (cascade)

A case body can end with fallthrough. If so, the rest cases are run.

package main

import "fmt"

func main() {
    switch 3 {
    case 4:
        fmt.Println("aa")
    case 3:
        fmt.Println("bb")
        fallthrough
    default:
        fmt.Println("dd")
    }
}

// prints:
// bb
// dd

multiple test in 1 case shortcut

Multiple tests can be combined in one case statement, separated by comma ,.

package main

import "fmt"

func main() {
    switch 3 {
    case 4:
        fmt.Println("aa")
    case 3, 7:
        fmt.Println("bb")
    default:
        fmt.Println("dd")
    }
}

// bb

switch without expression

Switch can be used without expression. If so, each case expression just test true/false.

package main

import "fmt"

func main() {
    switch {
    case 4 > 7:
        fmt.Println("aa")
    case 3 > 0:
        fmt.Println("bb")
    default:
        fmt.Println("dd")
    }
}

// bb

Reference

The Go Programming Language Specification - The Go Programming Language#Switch_statements

If you have a question, put $5 at patreon and message me.

Golang

  1. Compile, Run
  2. Source Encoding
  3. Package, Import
  4. Comment
  5. Print
  6. String
  7. String Backslash Escape
  8. Rune
  9. Variable
  10. Zero Value
  11. Constant
  12. If Then Else
  13. Switch/Case
  14. Loop
  15. Basic Types
  16. Array
  17. Slice
  18. Map
  19. Struct
  20. Function
  21. String as Chars
  22. regexp
  23. Read File
  24. Write to File
  25. Walk Dir
  26. Check File Exist
  27. System Call
  28. Get Script Path
  29. Pointer
  30. Defer
  31. Random Number

Examples

  1. Match Any Regexp
  2. Find Replace
  3. Validate Links
  4. Generate Sitemap

Reference

  1. Go Spec