이 글은 골든래빗 《Tucker의 Go 언어 프로그래밍》의 10장 써머리입니다.
switch 비굣값 {
case 값1:
// logic
case 값2:
// logic
defulat:
// logic
}
func days(day string) {
switch day {
case "monday", "tuesday":
fmt.Println("월, 화 알바가는 날")
case "wednesday", "thursday", "friday":
fmt.Println("수, 목, 금 학원가는 날")
default:
fmt.Println("주말")
}
}
test := 20
switch true {
case test > 10, test < 20:
fmt.Println("case1")
case test >= 10 && asdfTest():
fmt.Println("case2")
}
switch 초기문; 비교값 {
case 값1:
...
case 값2:
...
default:
...
}
type ColorType int
const (
Red ColorType = iota
Blue
Green
)
func colorToString(color ColorType) string {
switch color {
case Red:
return "Red"
case Blue:
return "Blue"
case Green:
return "Green"
default:
return "Undefined"
}
}
다른 언어와는 다르게 golang의 switch문은 break를 사용하지 않아도 하나의 case 실행 이후 switch를 빠져나가게 된다.
하지만 직관적으로 사용하고 싶다면 break를 넣어도 문제될것은 없다.
case를 실행한 후 fallthrough를 만나면 다음 케이스를 만족하지 않아도 무조건 실행한다.
test := 20
switch test {
case 20:
fmt.Print("case1")
fallthrough
case 100:
fmt.Print("case2")
} // case1case2 출력됨