Go If Statement
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.") }
Go else Statement
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 := false if sick { fmt.Println("Call the doctor.") } else { fmt.Println("Enjoy your day.") }
Go Comparison Operators
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 true notsame := "ABC" != "abc" // evaluates to true lessthan := 5 <= -5 // evaluates to false
Go Logical Operators
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 returnstrue
if all the booleans aretrue
||
is the OR operator that returnstrue
if one of the booleans istrue
!
is the NOT operator that returns the opposite of a boolean valueanswer := true && false // returns false answer = true || false // returns true answer = !false // returns true
Go Else If Statement
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.
Go Short Variable Declaration
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": ... }
Go Switch Statement
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.") }
Go Seed Value
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 Random Number Generator
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)