Go에서if와 짧은 명령 사용하기
이번엔 Go에서 if문을 사용해보겠습니다.
Go가 설치되어 있지 않지만 실행을 해보고 싶다면, 여기를 클릭해주세요.
Go if
if문 또한C와 Java와 비슷합니다. 조건 표현을 위해 ()는 사용하지 않습니다. 하지만 반드시 실행문을 위한 {}는 반드시 작성해야합니다.
package main
import (
"fmt"
"math"
)
func sqrt(x float64) string {
if x < 0 {
return sqrt(-x) + "i"
}
return fmt.Sprint(math.Sqrt(x))
}
func main() {
fmt.Println(sqrt(2), sqrt(-4))
}
for처럼 if에서도 조건문 앞에 짧은 문장을 실행할 수 있습니다.
package main
import (
"fmt"
"math"
)
func pow(x, n, lim float64) float64 {
if v := math.Pow(x, n); v < lim {
return v
}
return lim
}
func main() {
fmt.Println(
pow(3, 2, 10),
pow(3, 3, 20),
)
}
짧은 실행문을 통해 선언된 변수는 if안쪽 범위(scope)에서만 사용할 수 있습니다.
if else
if에서도 짧은 명령문을 통해 선언된 변수는 else 블럭 안에서도 사용할 수 있습니다.
package main
import (
"fmt"
"math"
)
func pow(x, n, lim float64) float64 {
if v := math.Pow(x, n); v < lim {
return v
} else {
fmt.Printf("%g >= %g\n", v, lim)
}
// can't use v here, though
return lim
}
func main() {
fmt.Println(pow(3, 2, 10),
pow(3, 3, 20),
)
}