基本構文を勉強してみる

Go記事第二弾、今回は if文や for文などの基本的な構文を勉強していきます。

尚、本記事は他のプログラミング言語を1つ以上習得している方向けの内容となっております。

それでは、前回に引き続き「A Tour of Go」を中心に参考にしていきたいと思います。

 

If文

まずは、例を書きます。

見ての通り、5以下であるかどうかを見るというだけの単純なif文です。

形式的には他の言語と大差ないですが、条件式を記述する部分に括弧は必要ありません。

一方で注意すべきは中括弧{}は常に必要であるという点です。

処理が1行のみであれば省略できる言語が多いですが、Goは必ず必要になります。

統一感があって良いですね。

比較演算子はこちらを参考にご覧ください。

→Go言語 if文のサンプル – ITSackura

 

条件式の前のステートメント

以下のように条件式の前に評価するための簡単なステートメントを書くことが出来ます。

 

分かり易くするとこのような感じ。

前処理で書いた変数は

  • if文の条件式
  • if文内
  • else文内

がスコープになります。

因みに、Goでのフォーマット指定子は推論であれば %v で統一できちゃいます…便利!

詳しいフォーマット指定子は以下の記事をご覧ください。

→fmt.Printfなんかこわくない – Qiita

 

For文

まずは、例を書きます。

簡単に表すと以下のような構造になっています。

よくある形式ですね。尚、初期化処理や条件式、後処理ステートメント部分を括弧で囲む必要はありません。 ifと同じです。

こちらも if文と同じく、中括弧{}は常に必要です。

余談ですが、繰り返しの単位を「イテレーション」と呼ぶそうです。何度か聞いたことや見たことはあったのですが、使う機会がなく毎回忘れてしまうので書いておきます…

 

省略とwhile

これもfor文では一般的ですが、初期化と後処理ステートメントを省略できます。

また、ループ構文として for の他に while が良く登場しますが、Goでは while文自体は存在しません。代わりに以下のように for文を用いて表すことが出来ます。

 

無限ループ

無限ループはかなりシンプルに表現できます。

抜け出す場合は break 、継続の場合は continue というのは他の言語と共通のようです。

 

Switch文

まずは例文。

A Tour of Goの例文をちょっと弄っただけです…

OSを判別して出力しています。

GoのSwitch文の特徴としては、

  • 選択された case のみが実行され、自動で break される
  • 整数以外の値も分岐できる
  • case の値は定数である必要がない

という感じで、かなり if – else に近い扱い方ができるので、個人的には使い勝手がいいと思います!

defaultの扱いは同じで、評価の順序は上から順に評価されます。

 

条件のないSwitch文

以下が実装例です。

通常、Switch文は条件となる値と一致する case を実行しますが、条件を省略すると、true が条件として与えられます。そのため、caseに条件式を与えることで、trueを出力した条件式と一致するようになっています。

 

Defer

これは初めて見ましたが、良いですね…

ひとまず例文をまた書きますね!

deferを利用すると、その処理は呼び出し元の関数の return 部分まで遅延させることが出来ます。尚、returnが明記されていない関数でも関数の処理が終了した段階で実行されます。

因みに、複数の関数を渡した場合は、スタックされて、LIFOの順番で実行されるとのこと。

LIFO(Last in first out)とは、日本語で言う先入後出法ってやつで、要は最後に渡した関数から実行されます。

 

ひとまず今回はここで区切ります。

Goならではのユニークな一面が解かり、ますます面白くなってきましたね。

次回は更にステップアップした内容を書きたいと思います。

 

参考にした記事

改訂2版 みんなのGo言語

A Tour of Go

Go言語 if文のサンプル – ITSakura

fmt.Printfなんかこわくない – Qiita

 

今回のブログ曲

今回投稿中に聴いていた曲はこちら

カテゴリー: Go言語

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です