A Go if
statement evaluates a condition and executes a statement block enclosed in curly braces {..}
if the evaluation returns true
. The condition may be optionally enclosed inside a pair of parentheses (...)
.
if (healthy) {fmt.Println("Work.")}if sick {fmt.Println("Stay home.")}
A Go else
statement can succeed an if
or if else-if
statement block and its code executed if the conditions in the preceding if
or if else-if
statements evaluate to false
.
sick := falseif sick {fmt.Println("Call the doctor.")} else {fmt.Println("Enjoy your day.")}
Go supports the standard comparison operators that compare two values and return a boolean. These include:
==
equivalence operator!=
not equal<
less than>
greater than<=
less than or equal>=
greater than or equalsame := 3 == 3// evaluates to truenotsame := "ABC" != "abc"// evaluates to truelessthan := 5 <= -5// evaluates to false
In addition to comparison operators, Go also supports logical operators which evaluate boolean values and return a boolean value. For example:
&&
is the AND operator that returns true
if all the booleans are true
||
is the OR operator that returns true
if one of the booleans is true
!
is the NOT operator that returns the opposite of a boolean valueanswer := true && false// returns falseanswer = true || false// returns trueanswer = !false// returns true
The Go else if
statement provides an additional condition to evaluate besides the first if
conditional. It can only appear after the if
statement and before an else
statement if it exists. For example:
if (temperature < 60) {fmt.Println("Put on a jacket.")} else if (temperature >= 60 && temperature < 75) {fmt.Println("Put on a light sweater.")} else {fmt.Println("Wear summer clothes.")}
Multiple else if
statements can exist alongside the if
statement. The if
else if
statements are scanned from top to bottom and only the code block associated with a true condition is executed. If none of the conditions are satisfied, the else
code block is executed if it exists.
A short variable declaration can be made within the scope of an if
or switch
statement before the condition is specified but after the if
or switch
keyword. A semicolon, ;
, is appended to the declaration to separate it from the condition.
if age := 55; age >= 55 {fmt.Println("You are retiring!")}switch season := "spring"; season {case "spring":fmt.Println("Plant some bulbs.")case "summer":...}
The Go switch
statement can be used as an alternative to a set of if
followed by else if
statements. The switch
statement compares the expression inside a condition with a set of values encapsulated in case
s.
The code inside a matched case
value is executed and the switch
block terminates. A default
case without a value can be appended to the last case
and its code executed if no prior match is found.
day := "Tuesday"switch day {case "Monday":fmt.Println("Monday is magnificent.")case "Tuesday":fmt.Println("Tuesday is terrific.")case "Wednesday":fmt.Println("Wednesday is wacky.")default:fmt.Println("We survived.")}
A seed value in Go is used for generating random numbers. By default, the seed value is 1
and this leads to a predictable number instead of random. To make the seed value unique, call the seed function, rand.Seed()
, with the argument time.Now().UnixNano()
to return the difference in time (in Nanoseconds) since Janurary 1st 1970.
rand.Seed(time.Now().UnixNano())
Go provides a function, math.rand.Intn()
, in the math.rand
package to generate a random number. To generate such a number between 0
to 99
, pass 100
as the function argument.
number := math.rand.Intn(100)