#ブール型(Boolean型)
ブール型はTrue「真」
またはFalse「偽」
のうちどちらか一つを持つ値の形で文字列ではありません。よって("")
ダブルクォーテーションなどの引用符は必要ありません。GO言語でブール型の値を宣言してみます。
package main
import "fmt"
func main() {
a := 10
b := 1
var num_bool bool = a > b
fmt.Println(num_bool)
fmt.Println(reflect.TypeOf(num_bool))
}
##実行結果
true
不等号を逆にしてみます。
package main
import "fmt"
func main() {
a := 10
b := 1
var num_bool bool = a < b
fmt.Println(num_bool)
fmt.Println(reflect.TypeOf(num_bool))
}
##実行結果
false
変数aにtrueを代入しPrintf関数でブール値を表す「%t」
を使用して出力。次に変数bにfalseを代入して出力部分にa == b
を表示させます。「==」
は等価比較演算子の一つで、左の値(a)と右の値(b)が等しければブール値がtrue、そうでなければfalseになります。対して、「!=」
は左の値(a)と右の値(b)が等しくない場合にブール値がtrueになります。変数cに3を代入、変数dに7を代入して両者のブール値を出力してみます。
package main
import "fmt"
func main() {
a := true
fmt.Printf("aの値は%t\n", a)
b := false
fmt.Printf("a==bの値は%t\n", a == b)
c := 3
d := 7
fmt.Printf("c!=dの値は%t\n", c != d)
}
##実行結果
aの値はtrue
a==bの値はfalse
c!=dの値はtrue
#演算子
さて、ここで演算子について見て行きましょう。演算子とは、足し算や引き算などの四則演算や2つの値の大小を比較する時に使用する記号のことです。それぞれの効果(説明)と記号をグラフにしてみました。
算術演算子 | 代入演算子 | 等価比較演算子 | 論理演算子 |
---|---|---|---|
加算(かざん)[足し算] | 代入 | 値が等しければtrue | ANDを返す |
+ | = | == | & |
減算(げんざん)[引き算] | 加算して代入 | 値が等しくなければtrue | ORを返す |
- | += | != | | |
乗算(じょうざん)[掛け算] | 減算して代入 | 値が大きければtrue | XORを返す |
* | -= | > | ^ |
除算(じょざん)[割り算] | 乗算して代入 | 値が小さければtrue | 指定論理を抽出して代入 |
/ | *= | < | (&,|,^)= |
剰余(じょうよ)[余り] | 除算して代入 | 値が同じか大きければtrue | 論理積(且つ)条件が両方成立すればtrue[AND] |
% | /= | >= | && |
累乗(るいじょう)[べき乗] | 剰余して代入 | 値が同じか小さければtrue | 論理和(または)どちらかの条件が成立すればtrue[OR] |
** | %= | <= | || |
文字列結合 | 累乗して代入 | 値が厳密に等しければtrue | その他、ヒア演算子。指定キーワードまでの文字列を代入 |
. | **= | === | << |
文字列として結合 | 値が厳密に等しくなければtrue | インクリメント演算子 | |
.= | !== | ++ | |
文字列として等しければtrue | デクリメント演算子 | ||
eq | -- | ||
文字列として等しくなければtrue | 連結演算子(文字列が絡むと連結する) | ||
ne | + | ||
文字コードが大きければtrue | 符号反転演算子 | ||
lt | x = x *(ー1);←この前にあるマイナスのこと | ||
文字コードが小さければtrue | |||
gt | |||
文字コードが同じか大きければtrue | |||
le | |||
文字コードが同じか小さければtrue | |||
ge | |||
指定文字列があればtrue(正規表現) | |||
=~ | |||
指定文字列が無ければtrue(正規表現) | |||
!~ | |||
否定(真のときは偽、偽のときは真) | |||
! | |||
大きければ-1、等しければ0、小さければ1 | |||
cmp | |||
値が大きければ-1、値が等しければ0、値が小さければ1 | |||
<=> |
###上記のbooleans2.goに式を追加で記述し、ファイルを再度ビルドして実行してみます。
package main
import "fmt"
func main() {
a := true
fmt.Printf("aの値は%t\n", a)
b := false
fmt.Printf("a==bの値は%t\n", a == b)
c := 3
d := 7
fmt.Printf("c!=dの値は%t\n", c != d)
fmt.Printf("c<dの値は%t\n", c < d)
fmt.Printf("(-c)<(-d)の値は%t\n", -1*c < -1*d)
e := 2 < c && c < 4
fmt.Printf("eの値は%t\n", e)
f := d < 7 || d == 7
fmt.Printf("fの値は%t\n", f)
g := (c*d != 21)
fmt.Printf("gの値は%t\n", g)
}
##ファイルをビルドして実行
aの値はtrue
a==bの値はfalse
c!=dの値はtrue
c<dの値はtrue
(-c)<(-d)の値はfalse
eの値はtrue
fの値はtrue
gの値はfalse
c < d
は式「3<7」に等価となるため値はtrueになります。-1*c < -1*d
はそれぞれ-1を乗じていますので「ー3と−7」になり大小関係が逆転し値はfalseになります。2 < c && c < 4
は変数cに代入されている値が2より大きく、且つ4より小さければtrueになる式の値を変数eに代入して出力させた結果です。d < 7 || d == 7
は変数dに代入されている値が7より小さいか、または7に等しければtrueになる式の値を変数fに代入して出力させた結果です。(c*d != 21)
は変数cの値とdの値を乗じた結果が21でなければtrueになる式の値を変数gに代入して出力させた結果です。答えは21なのでfalseが出力されました。