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

Golang Topics

  1. Compile, Run
  2. Package, Import
  3. Function
  4. Variable
  5. Constant
  6. If Then Else
  7. switch/case
  8. Loop
  9. Basic Types
  10. Array
  11. Slice
  12. map

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