GO lang
Switch
by NOMADFISH
2020. 12. 23.
Switch Case문
- 기본적이니 스위치문과 동일 합니다.
- 다른 점은 대부분의 다른 언어에서 case문이 5개면 5개중에 맞는 게 어떤 것인지 break가 문을 만나지 않으며 계속 순차적으로 전부 순회하는데 반해, go lang에서는 하나라도 case가 매핑되면, 그대로 switch문을 나가버린다.
- 보통의 switch문과 다른게 없다.
func switchFunc() {
fmt.Println("this os is")
switch os := runtime.GOOS; os {
case "darwin":
fmt.Println("OSX")
case "linux":
fmt.Println("linux")
case "windows":
fmt.Println("windows")
default:
fmt.Println(os)
}
}
- 다만, 짧은 코드를 for문이나 if문과 같이 ; 로 분류 하여 넣을 수 있다. 위 코드 예제를 보면 os 변수에 switch문 바로 뒤에서 할당하는 모습을 볼 수 있으며, 실제 case문에서 비교할 대상인 os 변수가 그 뒤에 나온다.
- 아래 코드는 할당문을 switch내에서 사용하지 않는 것이며, 기타 다른 언어들과 거의 차이가 없음을 알 수 있다.
func switchFunc() {
fmt.Println("this os is")
os := runtime.GOOS
switch os {
case "darwin":
fmt.Println("OSX")
case "linux":
fmt.Println("linux")
case "windows":
fmt.Println("windows")
default:
fmt.Println(os)
}
}
- break문이 따로 없어도 case하나가 만족되어 코드가 실행되면 switch문 밖으로 나가게 된다.