{}
で囲まれたコード ブロックが実行され、それ以外の場合はコード ブロックが実行されます。コード ブロックは引き続き後続のコードを実行します。
if 条件 {
// 何かを実行する
}
2 番目の分岐がある場合は、上記のコードに基づいて else キーワードと別のコード ブロックを追加できます。このコード ブロックのコードは、条件が満たされない場合にのみ実行されます。if と else の後の 2 つのコード ブロックは独立したブランチであり、そのうちの 1 つだけを実行できます。
if condition の場合 {
// 何かを行う
} それ以外の場合 {
// 何かを行う
}
3 番目のブランチがある場合は、次の形式の 3 つの別個のブランチを使用できます。
if condition1なら {
// 何かをする
} else もしcondition2なら {
// 別の何かをする
} それ以外なら {
// キャッチオールまたはデフォルト
}
else if 分岐の数に制限はありませんが、コードの読みやすさを考えると、if の後に else if 構造を追加しすぎない方が良いです。この形式を使用する必要がある場合は、満たされる条件を入れるようにしてください。まずはできるだけ。
キーワード if および else {
の後の左中括弧は、キーワードと同じ行になければなりません。else if 構造を使用する場合は、前のコード ブロックの右中括弧}
、else if キーワードと同じ行になければなりません。 、これら 2 つのルールはコンパイラによって強制されます。
不正な Go コード:
if x{
}
else { // 無効
}
gofmt を使用してコードをフォーマットした後、各ブランチのコードは 4 つまたは 8 つのスペース、または 1 つのタブでインデントされ、右中かっこ}
は対応する if キーワードと垂直に揃えられることに注意してください。
場合によっては、条件ステートメントの周囲のかっこを省略できます。条件がより複雑な場合は、かっこを使用してコードを読みやすくすることができます。&&、||、または ! を使用する場合、かっこを使用して式の操作を促進できます。を優先し、コードの可読性を向上させます。
例
次の例を使用して、if の書き方を理解します。
var ten int = 11
if ten > 10 {
fmt.Println(">10")
} else {
fmt.Println("<=10")
}
コード出力は次のとおりです。
>10
コードの説明は次のとおりです。
- 行 1 では整数変数を宣言し、値 11 を割り当てます。
- 2行目、10の値が10より大きい場合は3行目を実行、そうでない場合は4行目を実行します。
- 行 3 と行 5 は、値がそれぞれ 10 より大きい場合と 10 以下の場合の出力を出力します。
特別な文言
if にも特殊な書き方があり、if 式の前に実行文を追加し、変数の値に応じて判断することができます。コードは次のようになります。
err := Connect(); err != nil {
fmt.Println(err)
return
}
Connect は戻り値のある関数、err:=Connect() はステートメントです。Connect の実行後、エラーを err 変数に保存します。
err != nil は if の判定式で、err が空でない場合はエラーを出力してリターンします。
この書き方では戻り値と判定を1行で処理でき、戻り値の範囲はif文とelse文の組み合わせに限定されます。
ヒント
プログラミングでは、変数のスコープが小さいほど、問題が発生する可能性は低くなります。各変数は状態を表します。状態がある場合、その状態は変更されます。関数のローカル変数は、関数の実行にのみ影響します。ただし、グローバル変数はすべてのコードの実行状態に影響を与える可能性があるため、変数の範囲を制限することはコードの安定性に非常に役立ちます。