【Go入門】Goの基本型 – 論理値型(Boolean types)

Go
スポンサーリンク

ここでは数値型に続いて、Go言語の基本型の1つである論理値型(Boolean types)についてみていきます。

スポンサーリンク

論理値型

論理値型(Boolean types)は、true、falseという値をとるデータ型です。

型名はboolをとります。

次のコードで確認してみます。

package main

import "fmt"

var x bool

func main() {
	t := true
	f := false
	fmt.Println(x)
	x = true
	fmt.Println(x)
	fmt.Printf("%T %v\n", t, t)
	fmt.Printf("%T %v\n", f, f)

}

関数の外でvarで論理型をxで宣言しています。関数の中では省略宣言で初期化しました。

実行結果を見てみましょう。

false
true
bool true
bool false

xは最初の宣言で値を入れていません。値が入っていないものを出力するとfalseになるということがわかると思います。

スポンサーリンク

論理演算子

Goの論理演算子をみていきましょう。Goの論理演算子は「AND」を「&&」で、「OR」を「||」を利用します。

package main

import "fmt"

func main() {
	fmt.Println(true && true)
	fmt.Println(true && false)
	fmt.Println(false && true)
	fmt.Println(false && false)

	fmt.Println(true || true)
	fmt.Println(true || false)
	fmt.Println(false || true)
	fmt.Println(false || false)

	fmt.Println(!true)
	fmt.Println(!false)
}

&&、||の結果は論理学の真理値表を対応させて理解すればいいでしょう。否定に「!」を使うことで結果が反転します。

出力の結果は以下のとおりです。

true
false
false
false
true
true
true
false
false
true

以下に、 「AND」「OR」の真理値表をそれぞれまとめておきます。

スポンサーリンク

比較演算子

比較演算子は、演算子の左右の値を比較してtrueかfalseの論理値で評価される演算子です。

以下の6つの演算子で評価できます。

  • ==
  • <=
  • >=
  • !=
  • <
  • >

具体的には、次のような形で確認できます。

package main

import "fmt"

func main() {
	a := 10
	b := 13
	fmt.Println(a == b)
	fmt.Println(a <= b)
	fmt.Println(a >= b)
	fmt.Println(a != b)
	fmt.Println(a < b)
	fmt.Println(a > b)
}

aの値とbの値を比較してみました。

結果は以下のように確認できます。

false
true
false
true
true
false

これも、他の言語と変わりありませんね。

スポンサーリンク

Pythonコードで書いてみると…

Pythonの論理演算はどうか確認しておきましょう。

Goの「&&」「||」は,Pythonでは、「and」「or」を使います。

以下にまとめています。

実際に、ここで行ったGoのコードを書き換えてみます。

True、Falseと大文字で始まるという違いもあります。

def main():
    t, f = True, False
    print(type(t), t)
    print(type(f), f)


if __name__ == "__main__":
    main()

PythonにはFalseとみなせる値はありますが、Goのようなゼロ値のデフォルトで初期化されないので、その部分はここでは書いていません。

結果は以下の通り。

<class 'bool'> True
<class 'bool'> False

論理演算子の計算もやってみましょう。

Go言語の否定の「!」はPythonでは「not」を使います。

def main():
    print(True and True)
    print(True and False)
    print(False and True)
    print(False and False)

    print(True or True)
    print(True or False)
    print(False or True)
    print(False or False)

    print(not True)
    print(not False)


if __name__ == "__main__":
    main()

結果は以下のとおり。

True
False
False
False
True
True
True
False
False
True

論理演算の結果自体は、どの言語も同じロジックになるので特に新しい知識を憶えないといけないということではないですね。

比較演算子も同様にやっておきましょう。

def main():
    a = 10
    b = 13
    print(a == b)
    print(a <= b)
    print(a >= b)
    print(a != b)
    print(a < b)
    print(a > b)


if __name__ == "__main__":
    main()

当然、同様の結果になります。

False
True
False
True
True
False
スポンサーリンク

最後に

Go言語の論理値型(Boolean types)について扱いました。true、falseをとるデータ型です。

Goでは値を入れずにbool型で初期化した場合は、ゼロ値をとってfalseと判定されます。

Goの論理演算子は「AND」を「&&」、「OR」を「||」、「NOT」を「!」で表します。

比較演算子は、==、>=、<=、!=、>、< で左右の値を評価します。

Go
スポンサーリンク
CodeGraffitiをフォローする

タイトルとURLをコピーしました