概要
今回のブログポストではGolangでif文を使う方法について説明します。このブログポストで紹介するコードは次のリンクで確認できます。
if文
Golangでは次のようにif文を使うことができます。if文を使って条件を検査し、条件に合う場合はその処理を実行することができます。
if 条件 {
  コードブログ
} else if 条件 {
  コードブログ
} else {
  コードブログ
}
if文を使う方法を確認するため、main.goファイルを生成して次のように作成します。
package main
import "fmt"
func main() {
  v := 89
  if v > 90 {
    fmt.Println("B")
  } else if v > 80 {
    fmt.Println("B")
  } else if v > 70 {
    fmt.Println("C")
  } else {
    fmt.Println("F")
  }
}
作成したプログラムを実行すると次のような結果が出ます。
# go run main.go
B
ショートサーキット
Golangでは条件式を実行するとき、ショートサーキット(Short circuit)が使えます。
false && 条件
論理演算を実行する時、前の条件が実行した後、後ろの条件を実行することになります。&&演算は2つの条件が全てtrueになるとtrueになります。したがって、上のように前の条件がfalseの場合、後ろの条件を実行してもtrueにはならないので、後ろの条件を実行しなくて、結果でfalseをリターンします。
true || 条件
上の条件も同じく、前の条件がすでにtrueで、or演算は2つ中で1つだけtrueになるとtrueをリターンするので、後ろの演算を実行する必要がありません。
Golangではこのようにショートサーキットが使えます。これを確認するためmain.goを次のように修正して確認します。
package main
import "fmt"
func first(result bool) bool {
  fmt.Println("first condition is called!")
  return result
}
func second() bool {
  fmt.Println("Second condition is called!")
  return true
}
func main() {
  fmt.Println("ex 1")
  if first(false) && second() {
  }
  fmt.Println("ex 2")
  if first(true) && second() {
  }
  fmt.Println("ex 3")
  if first(true) || second() {
  }
  fmt.Println("ex 4")
  if first(false) || second() {
  }
}
作成したプログラムを実行すると下記のような結果が出ます。
ex 1
first condition is called!
ex 2
first condition is called!
Second condition is called!
ex 3
first condition is called!
ex 4
first condition is called!
Second condition is called!
これでショートサーキットが使えて2番目の条件が実行されないことが確認できます。
条件文の初期化文
他の言語とは違ってGolangではif文で初期化文(Initialization statement)を使えます。
if 初期化文; 条件文 {
  コードブログ
}
初期化文で割り当てた変数は、条件文中で使えますし、条件文中のコードブログでも使えます。
func testFunc() (int, bool) {
  return 1, true
}
func main() {
  if v, success := testFunc(); success {
   fmt.Println(v)
  }
  fmt.Println(v) // ERROR
}
初期化文で宣言した変数は、外部では使えないので、上のように外部で使うとコンパイルエラーになります。
完了
これでGolangでif文を使う方法についてみてみました。またGolangの特有な文法である条件文の初期化分についてもみてみました。
 私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります! 
アプリ広報
Dekuが開発したアプリを使ってみてください。Dekuが開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。






