言語仕様を見て、プログラミング言語の専門用語に精通しておくのは重要な事です。そうしておくと、言語や他の人達との議論でも正確な理解に結びつきます。また、言語のデザインをどうしたかったのかを理解するのはとても大事なことです。Go言語仕様を後で見ていきましょう。
このセクションでは、Goで異なる型を見ていきます。論理型を見ていきましょう。
論理値はtrue
かfalse
をとります。「論理値(boolean)」を検索してみると、「特にコンピューターとエレクトロニクスの分野において、論理値を表現するために使われる記法を意味する」とか「true
かfalse
のどちらかを取るバイナリ値」などと定義されています。
論理値はそういうものです。true
かfalse
です。プログラミングにおいてとても重要な役割を持っています。論理値は評価をtrue
かfalse
落とし込むことができるようにしてくれたり、条件分岐に使えます。何かがtrue
の場合にはやることがひとつ決まっており、false
の場合はそれ以外という感じです。
このコースの後で、条件分岐やswitch文、if文などシーケンシャルなフローや繰り返しのフローなどを見ていきます。
今は、Boolean
の続きを見ていきましょう。
Goでは、bool(論理型)
は型です。bool
型のx
を宣言してみましょう。
var x bool
var
x
の_型_はbool
です。x
はbool
_型_の_値を保持_しています。変数x
を宣言しましたが、、値を割り当てていません。つまりx
を出力すると、_ゼロ値_が帰ります。bool
型のゼロ値はfalse
です。
package main
import (
"fmt"
)
var x bool
func main() {
fmt.Println(x)
}
Goでは行末にセミコロンを入れないことを変に思う人もいます。実はセミコロンはコンパイラがこっそり付け加えています。なので、x = true;
ではなく、x = true
で大丈夫なのです。Goは_プログラミングを楽すること_に注力しています。効率的なコンパイル、楽なプログラミング、効率的な実行です。
package main
import (
"fmt"
)
var x bool
func main() {
fmt.Println(x)
x = true
fmt.Println(x)
}
論理値に対しては評価や比較もできますし、返り値にbool
をとることもできます。演算子とデリミタを見てみると、二重イコール==
、小なりイコール<=
、大なりイコール>=
、大なり>
、小なり<
のような比較のための演算子があるのが分かります。
実験してみましょう。短縮形宣言演算子を使い、a
に7
、b
に47
を割り当ててみて下さい。その後、a
とb
をa == b
として比較してください。
package main
import (
"fmt"
)
var x bool
func main() {
a := 7 // これを42に変えると、a == bがtrueになります
b := 42
fmt.Println(a == b) // <=, >=, !=, >, <といった演算子で実験してみてください
}
Goでは二重イコール演算子==
は同一かどうかを比較します。ひとつのイコール=
は割り当てに使います。
論理型の言語仕様では以下のように書かれています。
論理型は前に述べたようにtrue
かfalse
で記述される真偽値を表す。論理型は論理値である。