Go if: Difference between revisions
Line 22: | Line 22: | ||
Note that because the lexer [[Go_Language#Semicolons|automatically inserts a semicolon]] after each token that may represent the end of statement, if it is followed by newline, we always must provide the opening brace on the same line as the expression. | Note that because the lexer [[Go_Language#Semicolons|automatically inserts a semicolon]] after each token that may represent the end of statement, if it is followed by newline, we always must provide the opening brace on the same line as the expression. | ||
= | |||
< | =<tt>if</tt> with Initialization Statement= | ||
if < | <code>if</code> accepts an initialization statement before the expression, which is commonly used to set up a local variable: | ||
</ | |||
<span id='Statement_Precedes_Expression'></span>A special <code>if</code> syntax supports the Go [[Go_Language_Error_Handling#If_Syntax_for_Handling_Errors|error handling idiom that relies on functions returning errors as result value]]: | <span id='Statement_Precedes_Expression'></span>A special <code>if</code> syntax supports the Go [[Go_Language_Error_Handling#If_Syntax_for_Handling_Errors|error handling idiom that relies on functions returning errors as result value]]: | ||
<syntaxhighlight lang='go'> | <syntaxhighlight lang='go'> | ||
Line 60: | Line 51: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=If/else= | |||
<syntaxhighlight lang='go'> | |||
if <condition> { | |||
<statements> | |||
} else { | |||
<statements> | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang='go'> | |||
if x > 5 { | |||
println(x) | |||
} else { | |||
println("something else") | |||
} | |||
</syntaxhighlight> | |||
===If/else if/else=== | ===If/else if/else=== |
Revision as of 00:54, 6 July 2024
External
Internal
Overview
The if
statement specifies the conditional execution of one, two or more branches according to the value of boolean expressions. Optionally, the boolean expression may be preceded by an initialization statement, which is executed before the expression is evaluated.
The statements to be executed must aways be encoded in braces. Mandatory braces encourage writing simple if
statements on multiple lines.
Simple if
if <expression> {
<statements>
}
if x > 5 {
println(x)
}
Note that because the lexer automatically inserts a semicolon after each token that may represent the end of statement, if it is followed by newline, we always must provide the opening brace on the same line as the expression.
if with Initialization Statement
if
accepts an initialization statement before the expression, which is commonly used to set up a local variable:
A special if
syntax supports the Go error handling idiom that relies on functions returning errors as result value:
var result ...
var err error
if result, err = someFunc(); err != nil {
// handle error
return
}
// handle success
...
Avoid else
in the idiom above. Do NOT write this:
if result, err := someFunc(); err {
// handle error
...
} else { // BAD, avoid the "else"
// handle success
...
}
If/else
if <condition> {
<statements>
} else {
<statements>
}
if x > 5 {
println(x)
} else {
println("something else")
}
If/else if/else
if <condition> {
<statements>
} else if <condition> {
<statements>
} else {
<statements>
}
if x < 5 {
println(x)
} else if x == 5 {
println("is 5")
} else {
println("something else")
}