Skip to content

Latest commit

 

History

History
84 lines (54 loc) · 3.96 KB

4.01.md

File metadata and controls

84 lines (54 loc) · 3.96 KB

セクション 4.1 論理型

言語仕様を見て、プログラミング言語の専門用語に精通しておくのは重要な事です。そうしておくと、言語や他の人達との議論でも正確な理解に結びつきます。また、言語のデザインをどうしたかったのかを理解するのはとても大事なことです。Go言語仕様を後で見ていきましょう。

このセクションでは、Goで異なる型を見ていきます。論理型を見ていきましょう。

論理値はtruefalseをとります。「論理値(boolean)」を検索してみると、「特にコンピューターとエレクトロニクスの分野において、論理値を表現するために使われる記法を意味する」とか「truefalseのどちらかを取るバイナリ値」などと定義されています。

論理値はそういうものです。truefalseです。プログラミングにおいてとても重要な役割を持っています。論理値は評価をtruefalse落とし込むことができるようにしてくれたり、条件分岐に使えます。何かがtrueの場合にはやることがひとつ決まっており、falseの場合はそれ以外という感じです。

このコースの後で、条件分岐やswitch文、if文などシーケンシャルなフローや繰り返しのフローなどを見ていきます。

今は、Booleanの続きを見ていきましょう。

Goでは、bool(論理型)は型です。bool型のxを宣言してみましょう。

var x bool

var xの_型_はboolです。xbool_型_の_値を保持_しています。変数xを宣言しましたが、、値を割り当てていません。つまりxを出力すると、_ゼロ値_が帰ります。bool型のゼロ値はfalseです。

package main

import (
	"fmt"
)

var x bool

func main() {
	fmt.Println(x)
}

playground

Goでは行末にセミコロンを入れないことを変に思う人もいます。実はセミコロンはコンパイラがこっそり付け加えています。なので、x = true;ではなく、x = trueで大丈夫なのです。Goは_プログラミングを楽すること_に注力しています。効率的なコンパイル、楽なプログラミング、効率的な実行です。

package main

import (
	"fmt"
)

var x bool

func main() {
	fmt.Println(x)
	x = true
	fmt.Println(x)
}

論理値に対しては評価や比較もできますし、返り値にboolをとることもできます。演算子とデリミタを見てみると、二重イコール==、小なりイコール<=、大なりイコール>=、大なり>、小なり<のような比較のための演算子があるのが分かります。

実験してみましょう。短縮形宣言演算子を使い、a7b47を割り当ててみて下さい。その後、aba == bとして比較してください。

package main

import (
	"fmt"
)

var x bool

func main() {
	a := 7 // これを42に変えると、a == bがtrueになります
	b := 42
	fmt.Println(a == b) // <=, >=, !=, >, <といった演算子で実験してみてください
}

playground

Goでは二重イコール演算子==は同一かどうかを比較します。ひとつのイコール=は割り当てに使います。

論理型の言語仕様では以下のように書かれています。

論理型は前に述べたようにtruefalseで記述される真偽値を表す。論理型は論理値である。