If in Go – Go


If in Go

Go’s if statements are like its for loops; the expression need not be surrounded by parentheses
( ) but the braces { } are required.

func sqrt(x float64) string { if x < 0 { return sqrt(-x) + "i" } return fmt.Sprint(math.Sqrt(x)) }

Like for, the if statement can start with a short statement to execute before the condition.

Variables declared by the statement are only in scope until the end of the if.

func pow(x, n, lim float64) float64 { if v := math.Pow(x, n); v < lim { return v } return lim }

If and else

Variables declared inside an if short statement are also available inside any of the else blocks.

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), ) }

Running the above program produces an output similar to the following output –

$ go run if.go 27 >= 20 9 20

This article needs improvement. You can help improve this article. You can also write similar articles and help the community.