Skip to content

Latest commit

 

History

History
91 lines (67 loc) · 1012 Bytes

File metadata and controls

91 lines (67 loc) · 1012 Bytes

Switch

Let's learn about Go's Switch



Switch

: A way to check values

ex)

package main

import "fmt"

func canIDrink(age int) bool {
 switch age {
 case 18:
  return false
 case 19:
  return true
 }
 return false
}

func main() {
 fmt.Println(canIDrink(19))
}

You can use switch to avoid rampant if-else, else if cases

ex)

package main

import "fmt"

// Avoid if else with switch
func canIDrive(age int) bool {
 switch {
 case age < 19:
  return false
 case age == 19:
  return true
 case age > 19:
  return true
 }
 return false
}

func main() {
 fmt.Println(canIDrive(18))
}

You can also use variable expression in switch

ex)

package main

import "fmt"

// Variable expression in switch
func canIVote(age int) bool {
 switch koreanAge := age + 2; {
 case koreanAge < 19:
  return false
 case koreanAge == 19:
  return true
 case koreanAge > 19:
  return true
 }
 return false
}

func main() {
 fmt.Println(canIVote(29))
}