関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
結構長い間Go言語を使っているのですが、switchのcaseに複数の値を指定出来ることを知りませんでした(恥
てっきり、C言語とかと同じだと思ってた。。Tour of Goとかも multi case なサンプル書かれてなかったし、機能的に無いと思ってました。
言語仕様みたら、ちゃんと書いてありました。やっぱり、言語スペックは見ておかないと駄目ですねー。
サンプル
main.go
package main import ( "log" "math/rand" "time" ) var ( rnd *rand.Rand ) func init() { log.SetFlags(0) rnd = rand.New(rand.NewSource(time.Now().UnixNano())) } func main() { log.SetFlags(0) if err := run(); err != nil { panic(err) } } func run() error { var ( v = (1 + rnd.Intn(10)) ) log.Printf("v=%d", v) // // Goの switch statement は case に複数の値を指定出来る // 複数指定する場合はカンマで並べる。 // // REFERENCES: // - https://go.dev/ref/spec#Switch_statements // - https://www.w3schools.com/go/go_switch_multi.php // switch v { case 1, 2, 3: log.Printf("p1") case 4, 5: log.Printf("p2") case 6, 7, 8: log.Printf("p3") default: log.Printf("p4") } return nil }
Taskfile.yml
# https://taskfile.dev version: '3' tasks: default: cmds: - go run . silent: true
実行
$ task v=8 p3
参考情報
個人的Goのおすすめ書籍
個人的に読んでとても勉強になった書籍さんたちです。
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。






