ホームページ > バックエンド開発 > Golang > Golang 関数 switch ステートメントの応用スキル

Golang 関数 switch ステートメントの応用スキル

WBOY
リリース: 2023-05-16 08:26:06
オリジナル
3872 人が閲覧しました

Golang は近年急速に発展を続けており、多くの開発者にとって好まれるプログラミング言語の 1 つとなっています。 Golang の多くの文法構造の中で、switch ステートメントは間違いなく非常に重要な部分です。ただし、多くの開発者は最も単純な switch ステートメントしか使用せず、switch ステートメントのさらなる応用スキルについてはあまり知りません。この記事では、読者が switch ステートメントをよりよく理解し、適用できるように、Golang 関数での switch ステートメントの一般的な応用テクニックをいくつか紹介します。

  1. 式は必要ありません

一般的な switch ステートメントでは式を提供し、プログラムが式の値に基づいてどのケースを実行するかを決定できるようにします。声明。ただし、Golang では、式のない switch ステートメントを使用して、条件を満たす最初の case ステートメントにプログラムをジャンプさせることができます。以下に例を示します。

package main

import "fmt"

func main() {
    i := 3
    switch {
    case i < 3:
        fmt.Println("i is less than 3")
    case i == 3:
        fmt.Println("i is equal to 3")
    case i > 3:
        fmt.Println("i is greater than 3")
    }
}
ログイン後にコピー

i の値に従って、プログラムは「i は 3 に等しい」と出力します。この機能は、複数の条件を順番に評価する必要があるが、複数の if ステートメントを使用したくない場合に非常に便利です。

  1. 複数の式を使用できます

一般的な switch ステートメントでは、式を 1 つだけ使用できます。ただし、Golang では、カンマで区切って複数の式を使用できます。以下は例です。

package main

import "fmt"

func main() {
    i, j := 3, 4
    switch i, j {
    case 1, 2:
        fmt.Println("i is either 1 or 2")
    case 3, 4:
        fmt.Println("i is either 3 or 4")
    }
}
ログイン後にコピー

i と j の値に従って、プログラムは「i は 3 または 4 です」と出力します。この機能は、複数の条件を判断する必要があるが、各条件が相互に排他的ではない場合に非常に役立ちます。

  1. 型アサーションを使用できます

Golang では、型アサーションを使用して値の型を決定できます。したがって、switch ステートメントでは、型アサーションを使用して型判定を行うこともできます。以下は例です:

package main

import "fmt"

func main() {
    var i interface{} = 1
    switch i.(type) {
    case int:
        fmt.Println("i is an int")
    case float64:
        fmt.Println("i is a float64")
    case string:
        fmt.Println("i is a string")
    }
}
ログイン後にコピー

プログラムは「i は int です」と出力します。この機能は、さまざまな種類の値を判断する必要がある場合に非常に役立ちます。

  1. フォールスルー キーワードを使用できます

Golang では、フォールスルー キーワードを使用して、プログラムに条件判断なしで次の case ステートメントを実行させることができます。以下は例です:

package main

import "fmt"

func main() {
    i := 1
    switch i {
    case 1:
        fmt.Println("i is 1")
        fallthrough
    case 2:
        fmt.Println("i is 2")
    }
}
ログイン後にコピー

プログラムは「i is 1」と「i is 2」を出力します。この機能は、複数の case ステートメントを実行する必要がある場合に非常に便利です。

  1. default ステートメントを使用できます。

一般的な switch ステートメントでは、case ステートメントの条件がいずれも満たされない場合、プログラムは switch ステートメントを終了します。ただし、Golang では、switch ステートメントで default ステートメントを使用して、このような状況に対処できます。以下は例です:

package main

import "fmt"

func main() {
    i := 5
    switch i {
    case 1:
        fmt.Println("i is 1")
    case 2:
        fmt.Println("i is 2")
    default:
        fmt.Println("i is neither 1 nor 2")
    }
}
ログイン後にコピー

プログラムは「i は 1 でも 2 でもありません」と出力します。この機能は、ある種の状況を処理する必要があるが、特定の条件判断がない場合に非常に役立ちます。

  1. switch ステートメントを関数の戻り値として使用できます

Golang では、switch ステートメントを関数の戻り値として使用できます。この機能はプログラムをより簡潔で読みやすくするため、非常に便利です。以下は例です:

package main

import "fmt"

func main() {
    i, j := 1, 2
    switch {
    case i < j:
        fmt.Printf("%d is less than %d
", i, j)
    case i == j:
        fmt.Printf("%d is equal to %d
", i, j)
    case i > j:
        fmt.Printf("%d is greater than %d
", i, j)
    }
}
ログイン後にコピー

プログラムは「1 は 2 より小さい」と出力します。この機能は、さまざまなタイプの値を返す必要がある状況で非常に役立ちます。

要約すると、Golang 関数の switch ステートメントの応用スキルは非常に豊富で、必要に応じてこれらのスキルを柔軟に使用して、プログラムをより合理化、効率的、読みやすくすることができます。

以上がGolang 関数 switch ステートメントの応用スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート