🔥 swift 문
Go 언어에서 switch
문은 일련의 if - else
문을 더 간결하게 표현할 수 있게 해줍니다. switch
문은 조건식과 일치하는 첫 번째 case
문을 실행하게 되죠.
Go의 switch
문은 C, C++, Java, JavaScript, PHP 등의 언어와 유사하지만, 선택된 case
문만 실행하고 그 뒤에 오는 case
문들은 실행하지 않는다는 점에서 차이가 있습니다. 다른 언어에서는 각 case
문 마지막에 break
문을 명시적으로 써줘야 하지만, Go에서는 자동으로 break
문이 제공된다고 보면 되겠네요. 또 다른 중요한 차이점은 Go의 switch
문에서는 case
값이 상수일 필요가 없고, 정수일 필요도 없다는 것입니다.
아래 코드 예제를 통해 switch
문의 사용법을 자세히 살펴보겠습니다.
package main import ( "fmt" "runtime" ) func main() { fmt.Print("Go runs on ") // runtime.GOOS로 현재 운영체제를 확인하여 os 변수에 할당 switch os := runtime.GOOS; os { case "darwin": // os가 "darwin"인 경우 실행 fmt.Println("OS X.") case "linux": // os가 "linux"인 경우 실행 fmt.Println("Linux.") default: // 위의 case에 해당하지 않는 경우 실행 // freebsd, openbsd, plan9, windows 등 fmt.Printf("%s.\n", os) } }
go
위 코드에서는 runtime
패키지의 GOOS
상수를 사용하여 현재 프로그램이 실행 중인 운영체제를 확인합니다. 그리고 switch
문을 사용하여 운영체제에 따라 다른 메시지를 출력하고 있죠.
switch
문의 조건식으로 os := runtime.GOOS
를 사용하였는데, 이는 runtime.GOOS
값을 os
변수에 할당하면서 동시에 조건식으로 사용하는 방식입니다.
각 case
문에서는 os
변수의 값과 일치하는 경우 해당 case
블록 내의 코드를 실행합니다. os
가 "darwin"이면 "OS X."를 출력하고, "linux"이면 "Linux."를 출력하게 되는 거죠.
만약 os
값이 case
문에서 지정한 값과 일치하지 않는 경우, 즉 "freebsd", "openbsd", "plan9", "windows" 등인 경우에는 default
문이 실행되어 해당 운영체제 이름을 출력하게 됩니다.
이렇게 Go의 switch
문을 사용하면 조건에 따라 분기 처리를 간결하고 명확하게 표현할 수 있습니다. 코드의 가독성을 높이고 if - else
문을 반복적으로 사용하는 것을 피할 수 있게 되죠.
참고로 위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
$ go run switch.go Go runs on Darwin.
shell
이는 코드가 실행된 환경이 macOS (Darwin)이기 때문에 "OS X."가 출력된 것입니다. 다른 운영체제에서 실행한다면 해당 운영체제에 맞는 메시지가 출력될 거예요.
이처럼 switch
문은 조건에 따른 분기 처리를 간결하고 가독성 있게 표현할 수 있는 강력한 도구랍니다.