Switch

Go์˜ Switch์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•„์š”

Switch

: ๊ฐ’์„ ์ฒดํฌํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค

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))
}

switch๋ฅผ ํ™œ์šฉํ•˜์—ฌ if-else, else if ๋ฅผ ๋‚œ๋ฌดํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค

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))
}

switch์—์„œ๋„ variable expression ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

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))
}

Last updated

Was this helpful?