Go의 조건문엔 if문과 switch문이 있습니다.
if문은 우리가 흔히 아는 if문입니다.
go에서는 반드시 조건이 시작하는 첫 중괄호를 if와 같은 라인에 입력해야합니다. 또한 닫는 중괄호와도 같은 라인에 있어야 합니다.
아니면 오류가 발생합니다. 이는 코드의 통일성, 정형화를 위함이라고 생각합니다. 아래 예시를 보면서 설명하려고 합니다.
if something == 1 { // 같은 라인에 꼭 위치시키길 바란다.
println("True")
}
if 1 { // 불가능하다. go의 조건문에는 꼭 bool 타입이 와야한다.
println("True")
}
if something == 1 {
println("One")
} else if something == 2 {
// } 뒤에 else if 가 존재해야 하고 { 가 else if와 같은 라인에 있어야 한다.
println("Two")
//////////////////////////////////////
// 맞는 예시
} else { // 마찬가지로 같은 라인
println("Wrong")
}
// 틀린 예시
}
else { // 이런 경우에는 오류가 발생한다.
println("Wrong")
}
///////////////////////////////////////
또한, golang이 가지고 있는 기능으로
조건을 체크하기 전에 변수를 생성할 수 있습니다.
package main
import "fmt"
func canIDrink(age int) bool {
if koreanAge := age + 2; koreanAge < 18 {
return false
}
return true
}
func main() {
fmt.Println(canIDrink(16))
}
package main
import "fmt"
func canIDrink(age int) bool {
switch age {
case 10:
return false
case 18:
return true
case 50:
return false
}
return false
}
func main() {
fmt.Println(canIDrink(16))
}
스위치문을 이렇게 사용할 수 있지만, 이렇게 사용하면 다양한 경우를 포용하지 못합니다. 그럴경우 아래와 같이 사용할 수 있습니다.
func canIDrink(age int) bool {
switch {
case age < 18:
return false
case age == 18:
return true
case age > 50:
return false
}
return false
}
위와 같은 식으로도 사용할 수 있습니다.