- 布爾值是以數學家George Boole命名
- 編程中使用布爾值進行比較或控制流程,布爾值表示與數學邏輯分支相關的真值。
- 計算機中布爾類型值常用于條件判斷的邏輯,邏輯值只有兩種分別為真和假。
邏輯值
Golang中以bool類型聲明布爾型數據,布爾型數據只有true和false兩個常量值。
| 邏輯值 | 描述 |
|---|---|
| true | 真 |
| false | 假 |
- 布爾類型變量的默認值為
false
var flag bool
fmt.Printf("flag = %v, type = %T\n", flag, flag)//flag = false, type = bool
- 布爾類型會占用1個字節(jié)的存儲存儲空間
var flag bool
fmt.Printf("flag = %v, type = %T, size = %d\n", flag, flag, unsafe.Sizeof(flag)) //flag = false, type = bool, size = 1
- Golang禁止將整型強制轉換為布爾型
- 布爾型無法參與數值運算,也無法與其他類型進行轉換。
邏輯運算
Golang布爾類型適用于邏輯運算,一般用于程序的流程控制和條件判斷。
值比較時只有兩個相同類型的值才能比較,若不滿足則必須將其中一個值轉換為另一個值相同的類型后才能進行比較。
布爾值可以和邏輯運算符結合使用,且具有短路行為,若邏輯運算符左邊的值已確定整個布爾表達式的值,那么右邊的值將不再運算。
| 邏輯運算符 | 符號 | 描述 | 優(yōu)先級 |
|---|---|---|---|
| AND | && | 與 | 2 |
| OR | || | 或 | 3 |
| NOT | ! | 非 | 1 |
布爾值不會隱式轉換為數值0或1,禁止將整型強制轉換為布爾型,因此布爾值無法參與數值運算,也無法與其他類型進行轉換。