概要
今回のブログポストでは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で開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。