Go 言語のフロー制御ステートメントは、他の言語と同様に、プログラムの実行フローを制御し、意思決定、ループ、リソース管理を実装します。この記事では、for
、if
、switch
、defer
などの Go のフロー制御ステートメントを詳しく調べ、Go プログラムでそれらを効果的に使用する方法を説明します。
この記事は Go 言語チュートリアル シリーズの一部であり、開発者が Go 言語をより深く理解できるように設計されています。初心者でも経験豊富な開発者でも、このガイドは、より効率的で読みやすい Go コードを作成するために必要な知識を提供します。
この記事を読むと、次のことをマスターできるようになります:
始めましょう!
for
ループfor
Loop は Go 言語の唯一のループ構造ですが、非常に柔軟でさまざまなシナリオで使用できます。
for
ループ<code class="language-go">for i := 0; i < 10; i++ { fmt.Println(i) }</code>
これは、変数の初期化、条件の設定、変数の増加を行う従来の `for` ループです。
for
ループの継続実行 (while
ループと同様)
Go には `while` キーワードがありませんが、`for` ループを使用して同じ効果を実現できます。
<code class="language-go">sum := 1 for sum < 100 { sum += sum }</code>
このループは、条件「sum < 100」が真でなくなるまで実行され続けます。 < 100`不成立。
無限ループ
条件が省略された場合、`for` ループは無限に実行されます:
<code class="language-go">for { fmt.Println("无限循环") }</code>
これは、継続的に実行する必要があるタスク (サーバーなど) に役立ちます。
if
ステートメント`if` ステートメントは条件付き実行に使用されます。
基本的なif
ステートメント
<code class="language-go">if x > 10 { fmt.Println("x大于10") }</code>
if
短いステートメントを含むステートメント
条件の前に短いステートメントを実行できます:
<code class="language-go">if x := 5; x < 10 { fmt.Println("x小于10") }</code>
if
および else
`else` と `else if` も使用できます:
<code class="language-go">if x > 10 { fmt.Println("x大于10") } else if x == 10 { fmt.Println("x等于10") } else { fmt.Println("x小于10") }</code>
switch
ステートメント「switch」ステートメントは、複数の条件を処理する強力な方法です。
基本的なswitch
ステートメント
<code class="language-go">switch os := runtime.GOOS; os { case "darwin": fmt.Println("OS X") case "linux": fmt.Println("Linux") default: fmt.Printf("%s.\n", os) }</code>
switch
ステートメントの実行順序
Go は `switch` ステートメントのケースを上から下に評価し、一致が成功すると停止します。
無条件switch
ステートメント
無条件の `switch` ステートメントは `switch true` と同等です:
<code class="language-go">t := time.Now() switch { case t.Hour() < 12: fmt.Println("上午") case t.Hour() < 18: fmt.Println("下午") default: fmt.Println("晚上") }</code>
defer
ステートメント`defer` ステートメントは、周囲の関数が戻るまで関数の実行を延期します。
基本的なdefer
ステートメント
<code class="language-go">func main() { defer fmt.Println("world") fmt.Println("hello") }</code>
出力:
<code>hello world</code>
積み重ねられたdefer
ステートメント
遅延関数は後入れ先出し (LIFO) 順序で実行されます:
<code class="language-go">func main() { defer fmt.Println("first") defer fmt.Println("second") defer fmt.Println("third") }</code>
出力:
<code>third second first</code>
実践例
これらのフロー制御ステートメントの使用を示す実際の例を見てみましょう。タスクリストを処理し、そのステータスを出力する簡単なプログラムを作成します。
<code class="language-go">for i := 0; i < 10; i++ { fmt.Println(i) }</code>
手順の詳細説明
ベストプラクティス
結論
フロー制御ステートメントは、プログラムの実行フローを制御できる Go 言語の重要なツールです。 「for」、「if」、「switch」、「defer」をマスターすることで、より効率的で読みやすく、保守しやすい Go コードを作成できます。
この記事で提供されている例を試し、ご自身で概念を試してみることをお勧めします。
行動喚起
この記事は、Go 言語チュートリアル シリーズ の一部であり、より熟練した Go 開発者になるのに役立つように設計されています。この記事が役に立ったと思われる場合は、このシリーズの以前および今後のチュートリアルを必ずチェックしてください。私のブログまたは Dev.to で確認してください。
プログラミングを楽しんでください! ?
以上がGo のフロー制御ステートメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。