ホームページ  >  記事  >  バックエンド開発  >  Go言語でswitchステートメントを使用するにはどうすればよいですか?

Go言語でswitchステートメントを使用するにはどうすればよいですか?

王林
王林オリジナル
2023-06-11 09:11:464463ブラウズ

Go 言語は新興プログラミング言語であり、効率性、シンプルさ、セキュリティ、同時実行性の特性を備えており、Web 開発、分散システム、クラウド コンピューティングなどの分野での使用に非常に適しています。 Go 言語では、switch ステートメントは非常に一般的に使用される言語構造であり、式の値に基づいて実行するさまざまな分岐を選択できます。この記事ではGo言語のswitch文の基本的な使い方と注意点を紹介します。

  1. 基本構文

Go 言語の switch ステートメントは他のプログラミング言語の switch ステートメントに似ていますが、他の言語とは異なり、Go 言語の switch ステートメントは「フォールスルー」(浸透効果) を防ぐには、break ステートメントが必要です。以下に簡単な例を示します。

func main() {
    num := 2
    switch num {
    case 1:
        fmt.Println("The number is 1")
    case 2:
        fmt.Println("The number is 2")
    case 3:
        fmt.Println("The number is 3")
    default:
        fmt.Println("Unknown number")
    }
}

上記のコードでは、最初に 2 に等しい変数 num を定義し、次にこの変数の値を照合して、実行する別のブランチを選択します。 num の値が 2 であるため、2 番目の分岐が選択され、「数値は 2」が出力されます。 num の値を 4 に変更すると、デフォルトの分岐が実行され、「不明な番号」が出力されます。

  1. 複数条件の一致

実際のプログラミングでは、複数の値を一致させる必要がある場合がありますが、これを実現するには、カンマを使用して複数の条件を区切ることができます。以下に例を示します。

func main() {
    num := 3
    switch num {
    case 1, 2:
        fmt.Println("The number is 1 or 2")
    case 3, 4:
        fmt.Println("The number is 3 or 4")
    default:
        fmt.Println("Unknown number")
    }
}

上記のコードでは、カンマを使用して複数の条件を区切って、異なる値の範囲に一致させます。 num の値が 1 または 2 の場合、最初の分岐が実行されて「数値は 1 または 2」が出力され、num の値が 3 または 4 の場合、2 番目の分岐が実行されて「数値は 1 または 2」が出力されます。出力される数値は「3」または「4」です。

  1. 式の照合

場合によっては、変数値そのものだけでなく、条件を照合するために式を使用する必要があります。以下に例を示します。

func main() {
    num1 := 10
    num2 := 20
    switch {
    case num1 > num2:
        fmt.Println("num1 is greater than num2")
    case num2 > num1:
        fmt.Println("num2 is greater than num1")
    default:
        fmt.Println("num1 is equal to num2")
    }
}

上記のコードでは、switch 条件式を指定しませんでしたが、各 case 分岐で異なる式を使用して条件に一致させました。 num1 の値が num2 より大きい場合、最初の分岐が実行され、「num1 は num2 より大きい」が出力され、num2 の値が num1 より大きい場合、2 番目の分岐が実行され、「num2 は num2 です」が出力されます。 「num1 より大きい」が出力されます。num1 の値が num2 に等しい場合、デフォルトの分岐が実行され、「num1 は num2 に等しい」が出力されます。

  1. タイプ スイッチ

式の使用に加えて、マッチングにタイプを使用することもできます。このタイプのスイッチをタイプスイッチと呼びます。以下は例です:

func main() {
    var i interface{} = 10
    switch i.(type) {
    case int:
        fmt.Println("i is an integer")
    case float64:
        fmt.Println("i is a float")
    case bool:
        fmt.Println("i is a boolean")
    case string:
        fmt.Println("i is a string")
    default:
        fmt.Println("i is an unknown type")
    }
}

上記のコードでは、空のインターフェイス変数 i を定義し、それを整数 10 に割り当てます。次に、タイプ スイッチを使用して i のタイプを一致させ、さまざまなタイプに基づいてさまざまな分岐を実行します。 i の型は int なので、最初の分岐が実行され、「i は整数」が出力されます。

  1. 注意事項

switch ステートメントを使用する場合は、次の点に注意する必要があります。

  • switch ステートメントには、この場合、条件に一致するケース分岐に式を使用する必要があります。
  • 他のプログラミング言語とは異なり、Go 言語の switch ブランチは自動的に「フォールスルー」 (浸透効果) しないため、switch ブランチから飛び出すために Break ステートメントを使用する必要はありません。
  • 一致するブランチがない場合、ブランチは実行されず、エラーは報告されません。
  • fallthrough ステートメントを使用して、1 つの case 分岐の後に次の case 分岐の実行を継続する場合は、無限ループを避けるために注意する必要があります。

要約:

Go 言語の switch ステートメントは非常に一般的に使用される言語構造であり、さまざまな条件に応じて実行するさまざまな分岐を選択できます。 switch ステートメントを使用する場合は、複数条件の一致、条件を一致させるための式の使用、switch の型などの特殊なケースに注意する必要があります。 switch ステートメントを上手に使用すると、より明確で効率的かつ安全なコードを作成できます。

以上がGo言語でswitchステートメントを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。