スイッチを使用してスイッチの6つの方法
基本スイッチ
スイッチケースは、特定の変数に対して行われる複数の条件チェックが一般的に使用されます.あなたのコードで複数のif文を持つより、理解しやすいです.
switchステートメント式を評価し、可能な選択肢のリストから一致するコードのブロックを実行します
package main
import "fmt"
func main() {
status := 1
switch status {
case 0:
fmt.Println("Status - Todo")
case 1:
fmt.Println("Status - In progress")
case 2:
fmt.Println("Status - Done")
}
}
上記のプログラムでは、整数値に基づいて異なる値に対応できるステータス変数があります.ビジネスロジックは、以下を示唆します0 -藤堂
1 -進行中で
2 -完了
switchステートメントを使用して、
status
の値を確認し、対応する値を出力できます.デフォルトステートメントで切り替える
評価される式が定義されているケースのリストに存在しない値を含む場合があります.
default
ステートメントは、定義された他のケースとの一致がない場合、その場合を実行することによって我々の救助に来ます.package main
import "fmt"
func main() {
status := 1
switch status {
case 0:
fmt.Println("Status - Todo")
case 1:
fmt.Println("Status - In progress")
case 2:
fmt.Println("Status - Done")
default:
fmt.Println("Not valid status")
}
}
条件のないスイッチ
switch文は、定義するときに式以下の文をサポートします.複数の条件をチェックして、それらの条件を指定したい場合は、switch文の式を削除できます
package main
import "fmt"
func main() {
status := 1
switch {
case status == 0:
fmt.Println("Status - Todo")
case status == 1:
fmt.Println("Status - In progress")
case status == 2:
fmt.Println("Status - Done")
default:
fmt.Println("Status - Not valid")
}
}
ケースリストを切り替える
別の一般的なユースケースは、複数の式を持つことです.複数の式はカンマで区切られます.
package main
import "fmt"
func main() {
status := 4
switch status{
case 0:
fmt.Println("Status - Todo")
case 1:
fmt.Println("Status - In progress")
case 2, 3, 4:
fmt.Println("Status - Done")
default:
fmt.Println("Status - Not valid")
}
}
Fallthroughステートメントで切り替える
switchの文の実行は、上から下へ行きます.特定のケースがtrueであると評価するとき、文の実行は起こります.コントロールは成功した場合の実行の後、スイッチから飛び出す.
fallthrough
ステートメントは、実行されたケースの後、ケースの最初の声明にコードの実行を移すのに用いられますフォールスルーは、条件に関係なく連続した場合を実行する場合に使用できます
package main
import "fmt"
func main() {
switch status := 3; {
case status < 2:
fmt.Println("Status is not done")
case status < 4:
fmt.Println("Status is done")
fallthrough
case status > 6:
fmt.Println("Status is done but has some issues")
}
}
出力ステータスはステータスが行われますが、いくつかの問題があります
Fallthroughについての注意事項
status > 6
がfalseであることを示します.break文で切り替える
CASEステートメントの実行は
break
ステートメントを使用して停止できます.package main
import "fmt"
func main() {
switch status := 2; {
case status < 2:
fmt.Println("Status is not done")
case status < 4:
fmt.Println("Status is done")
if (status == 2) {
break;
}
fallthrough
case status > 6:
fmt.Println("Status is done but has some issues")
}
}
出力状態
上記のプログラムでは、
2
のときに2番目のケースが実行される.if
条件がtrueになるので、break
が実行されることなくスイッチ声明の終わりに制御を送るfallthrough
は呼ばれます同様に、breakステートメントの後にラベルを指定することで、ラベル付きループから中断できます
package main
import (
"fmt"
"math/rand"
)
func main() {
outerloop:
for {
status := rand.Intn(6)
switch status {
case 0,1,2:
fmt.Println("Waiting for status to complete")
case 3,4,5:
fmt.Println("Status is done")
break outerloop
}
}
}
条件のないfor
ループは、break文に入るまで無限ループを実行します.詳細については、このブログの記事にループを持つことができます.https://www.eternaldev.com/blog/go-learning-for-loop-statement-in-depth/
status
変数は、各々のループ反復のために0から5までの間のランダムな値を含みます.その値が3未満であるならば、「完了するのを待つこと」は印刷されます.値が3以上の場合は、“statusが完了しました”と表示されます.このプログラムは、ランダム値関数から3から5まで値を取得するまで実行されます.
実用的な割り当て
ユーザーからタスクのタスクおよびステータスの名前をとって、switch文を使用しているタスクのための残留ステータスを出力する
ユーザー入力-「機能A」、「進行中の仕事」-出力-3つのステップは、係留中の
ユーザー入力-「機能C」、「つくられた」-出力- 5ステップは、係留中の
次のライブコードエディターを使用して課題に取り組む
https://www.eternaldev.com/blog/go-switch-6-ways-of-using-switch-in-go/
概要
我々のメーリングリストに加入して、我々の不協和コミュニティに加わって
Discord
Reference
この問題について(スイッチを使用してスイッチの6つの方法), 我々は、より多くの情報をここで見つけました https://dev.to/eternaldev/go-switch-6-ways-of-using-switch-in-go-5a0lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol