【Go言語】昔スウィーティーってちょっと流行ってたよね – Switch

2018年11月30日Gocase,Go言語,switch,プログラム,制御文Go,case,Go言語,switch,プログラム,制御文

なんとなく響きが似てたのでこんなタイトルにしていますが、なんの意味もございません。_(:3」∠)_キニシナイデネ

それでは「A Tour of Go」を進めてみます。

前回は演習ってことで、やや難しい数式とかも出てきましたが、今回は if のすごい版的な switch という制御文が学習のお題となります。

該当ページはこちら

今回のお題になるページはこちら、いつもどおりURLをおいておきますね。

「Switch」ハコチラ>(´・ω・)つ https://go-tour-jp.appspot.com/flowcontrol/9

「Switch evaluation order」ハコチラ>(´・ω・)つ https://go-tour-jp.appspot.com/flowcontrol/10

「Switch with no condition」ハコチラ>(´・ω・)つ https://go-tour-jp.appspot.com/flowcontrol/11

お題のページ - switch
お題のページ – switch

というわけで、今回は3ページ分進めます

お題は switch

他の言語では if に似た制御文になる switch ですが、Go でも概ね同じ動きのようです。

ただ、細かい部分では少し異なるようなので、改めて仕様を確認しながら進めてみます。

ポイントを抜き出す

ザックリとポイントを抜き出しました。

  • switch の書き方と働き
  • 評価順序
  • 評価値なしの switch

順番に詳細を見ていきます。

switch の書き方と働き

だいたいこんな感じです。

switch の書き方と働き
switch の書き方と働き

評価(条件)に応じた処理が複数分岐するときに使用すると便利です。

if でも同様の事ができますが、switch のがスマートに掛ける場合が多いです。

また、case に書く <値> についてですが、数値の定数(リテラル値)に限らず文字列やファンクションなども評価できるようです。

実際にプログラミングしてみますと…

こんな雰囲気になります。

正確な文法については、言語仕様(Switch statements)に記載があります。

評価順序

switch の評価順です。

上から順に case の値と比較していくようです。

評価順序
評価順序

他の言語(C言語とか)では、case句に書く処理の最後で break を書き、以降の case に書いた処理をしないよう、明示的に switch を終了させるんですが、Go の場合は暗黙的(自動的)に break されるようです。

評価値なしの switch

Go の switch は評価値を省略できるようです。

例えば、先程のプログラムを評価値なしにしてみますと…

と、こんな感じになります。

case 部分で条件を完結させてしまっているので、本来の switch 的な使い方じゃない気がしますが…、一応、if の代用としてシンプルな表現ができると説明にあります。

今回のまとめ

今回は以上ですね。

それではポイントを纏めてみます。

  • switch の文法は
    switch <評価値> {
    case <A値>:
    <処理>
    case <B値>:
    <処理>
    default:
    <処理>
    }
    と書くんです
  • case部分は上から順に評価されるんです
  • switchの評価値は省略できるんです

switch case も if や for と同様によく使う制御分なので、しっかり頭に入れておきたいですね。

それじゃ~また次回~。٩(๑´3`๑)۶