이번엔 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),
	)
}