【Go言語】スコープ…エイm? な If - その2

2018年11月14日GoGo言語,if,制御文Go,Go言語,if,制御文

え~、Go です。

前回の続きです。

というわけで、If の使い方その2ってことで進めていきます。

今回のお題は「If with a short statement」と「If and else」

なんとなく訳してみると、「If と 短いステートメント(手続き)」、それと「If とelse」といった感じでしょうかね?

前回進めた If から、もう少し踏み込んだ内容が書かれているようです。

そして今回の進めるページのURLはこちらね。(´・ω・)つhttps://go-tour-jp.appspot.com/flowcontrol/6

A Tour of Go - If with a short statement のページ
A Tour of Go – If with a short statement のページ

もういっこはこちら。(´・ω・)つhttps://go-tour-jp.appspot.com/flowcontrol/7

A Tour of Go - If and else のページ
A Tour of Go – If and else のページ

じゃ~中身を見ていきまーす。

内容を見ていく

今回は2ページ分まとめて進めますが、どちらもそれほど難しいことは書いてないようです。

ポイントを抜き出してみると…

  • If の条件式の前に簡単なステートメントが書ける
  • そのステートメントで宣言された変数は If のスコープ内で有効

ですね。

それでは順番に詳しく見ていきます。

If の条件の前に簡単なステートメントが書ける

前回やりましたが、If を書くときには<条件式> を書く必要があります。

Go言語では、この<条件式>の前に簡単なステートメントを追記できるようです。

ifとステートメント
ifとステートメント

実際にプログラムで書いてみると…

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

そして Run してみると気づくと思いますが、If に書いたステートメントは <条件式> の真偽に関わらず実行されるようですね。

そのステートメントで宣言された変数は If のスコープ内で有効

続いて If のステートメント部分で変数を宣言したときのお話ですね。

結論から言っちゃえば、ステートメント部分で宣言された変数は If のスコープ内(中括弧内)のみで有効なようです。

ifとステートメントと変数
ifとステートメントと変数

実際に試してみます。

まずは If のスコープ内で変数を使ってみます。

else の方も含めて変数を使うことができました。

さて、今度は if のスコープ外で使ってみます。

Run するとわかりますがエラーが表示されます。

prog.go:14:14: undefined: v

これは、変数 v が undefined(未定義)です、って言われています。

というわけで、if のスコープ外では使えませんでした。

サンプルプログラムについて

ここまでに使ったことのないファンクションなどがあり、ポイントがブレそうなので触れないことにします。

とは言いつつも、完全にスルーするのもアレなので、、、コメントを差し込んだものくらいは載せておきます。

If with a short statement のサンプルプログラム

If and else のサンプルプログラム

今回のまとめ

前回に引き続いての If。

今回やったことをまとめてみますと…

  • ステートメントを一緒に書く場合は、if <ステートメント> : <条件式> { … }、と書くんです
  • Ifのステートメントで定義された変数は、If のスコープでしか使えないんです

こんなところでしょうか。

If については今回で終わりなようで、次回は…実習?的な内容みたいです。

というわけで今回はここまで。

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