bool
true
false
- 否定演算子
!
- 初期化文
if
/else
if
/else
if
/else
if
/else if
/.../else
_if文_は条件文です。制御構造で話したことですが、プログラムにはシーケンス、イテレーション、条件があります。シーケンスは上から下へ、イテレーションはループ、そして条件は分岐です。
true
とfalse
、!true
と!false
を使ってやってみましょう。
package main
import (
"fmt"
)
func main() {
if true {
fmt.Println("001")
}
if false {
fmt.Println("002")
}
if !true {
fmt.Println("003")
}
if !false {
fmt.Println("004")
}
上の例によると、if true
は常に真になって実行されます。if true
は常に偽で実行されません。if !true
は真_でない_ので偽と同じで、実行_されません_。if !false
は偽_ではない_ので実行されます。
番号と!
演算子の例を見てみましょう。
package main
import (
"fmt"
)
func main() {
if 2 == 2 {
fmt.Println("001")
}
if 2 != 2 {
fmt.Println("002")
}
if !(2 == 2) {
fmt.Println("003")
}
if !(2 != 2) {
fmt.Println("004")
}
}
Goでは、セミコロンを行末に見ることはほとんどありません。初期化文で見ることがあるぐらいです。
ここでは2つの文を1行で書きたいのでセミコロンを使いましょう。
package main
import (
"fmt"
)
func main() {
fmt.Println("here's a statement"); fmt.Println("something else")
}
このコードをフォーマットすれば(go fmt
やplaygroundのformat)、セミコロンで分割した文が2行になるはずです。
初期化のユースケースとしては、例えばif x := 42; x == 2
ではx
は42
で初期化され、x == 2
かを評価します。x == 2
はfalse
です。
package main
import (
"fmt"
)
func main() {
if x := 42; x == 2 {
fmt.Println("001")
}
fmt.Println("文があります")
fmt.Println("ほげほげ")
}