🔥 초기화문을 가진 if 문

222자
3분

Go 언어에서 if문은 for문과 마찬가지로 조건문 앞에 초기문(short statement)을 사용할 수 있습니다. 이 초기문은 if문의 조건을 평가하기 전에 실행되는데요. 초기문에서 선언된 변수는 if문의 끝까지만 유효합니다.

아래 예제 코드를 통해 if문에서 초기문을 사용하는 방법을 알아볼까요?

package main
 
import (
    "fmt"
    "math"
)
 
func pow(x, n, lim float64) float64 {
    // if문의 초기문에서 v 변수를 선언하고 math.Pow(x, n)의 결과를 할당합니다.
    if v := math.Pow(x, n); v < lim {
        // 초기문에서 선언한 v 변수를 사용하여 조건을 평가합니다.
        // 조건이 참이면 v를 반환합니다.
        return v
    }
    // 조건이 거짓이면 lim을 반환합니다.
    return lim
}
 
func main() {
    // pow 함수를 호출하고 결과를 출력합니다.
    fmt.Println(
        pow(3, 2, 10), // 3^2 < 10 이므로 9를 반환합니다.
        pow(3, 3, 20), // 3^3 < 20 이므로 27을 반환합니다.
    )
}
 
go

위 코드에서 pow 함수는 if문의 초기문을 사용하고 있습니다. 초기문 v := math.Pow(x, n)if문의 조건을 평가하기 전에 실행되며, v 변수를 선언하고 math.Pow(x, n)의 결과를 할당합니다.

그 다음 v < lim 조건을 평가하는데요. 조건이 참이면 v를 반환하고, 거짓이면 lim을 반환합니다. 초기문에서 선언한 v 변수는 if문의 끝까지만 유효하므로, if문 밖에서는 사용할 수 없습니다.

main 함수에서는 pow 함수를 호출하고 결과를 출력합니다. pow(3, 2, 10)은 3^2 < 10 이므로 9를 반환하고, pow(3, 3, 20)은 3^3 < 20 이므로 27을 반환하겠죠?

이렇게 if문의 초기문을 사용하면 코드를 간결하게 작성할 수 있습니다. 하지만 초기문에서 선언한 변수의 유효 범위가 if문으로 제한됨을 기억해야 합니다.