06 Ruby 布林物件
本章節我們學習布林值,瞭解什麼是布林值,在 Ruby 中布林值的基本用法。
1. 什麼是布林值
布林值是真 True 或假 False 中的一個。動作指令碼也會在適當時將值 True 和 False 轉換為 1 和 0。布林值經常與動作指令碼語句中通過比較控制指令碼流的邏輯運算子一起使用。——官方定義
布林值代表著真和假,在程式碼上,通常顯示為true
和false
。
2. 在 Ruby 中使用布林值
在 Ruby 中布林值是一個特殊的物件。它由兩個類組成,分別為TrueClass
和FalseClass
。他們兩個類分別只有一個唯一的例項,為true
和false
。
例項:
> true.class
=> TrueClass
false.class
=> FalseClass
解釋:在 Ruby 中,每一個物件擁有可以檢視自己所屬類的方法,名為class
,從上述的例項中我們看到,true
和false
分別屬於TrueClass
和FalseClass
兩個類。
注意事項:在 Ruby 中nil
表示空,所有物件都可以轉成布林值,只有false
和nil
才真的是false
,其他的均為true
,即便是 0。這部分內容在條件語句中會給出具體例子。
經驗:當返回的方法是布林值的時候,要使用?
作為方法的結尾,這個要當做是Ruby程式碼的編寫規範。方法的定義稍後會在Ruby的方法章節具體給出例子。我們統稱這種結尾帶問號的方法為布林方法
例項:
# 判斷123是空嗎?
> 123.nil?
=> false
# 判斷字串daadsasd是否內部定義了downcase方法
> "daadsasd".respond_to?("downcase!")
=> true
3. 邏輯運算子
在 Ruby 中我們在執行一些複雜的判斷的時候會使用到邏輯運算子(也就是與、或、非),具體的表格如下:
運算子 | 時機簡介(呼叫的時機) | 例子 |
---|---|---|
and | 當左右都為true的時候才為true | true and true => true |
&& | 當左右都為true的時候才為true | true && true => true |
or | 當左右存在一個true的時候就為true | true or false => true |
|| | 當左右存在一個true的時候就為true | true || false => true |
not | true變為false,false變為true | True |
! | true變為false,false變為true | ! false => true |
邏輯運算子中,非的優先順序最大,與和或的優先順序相同,自左向右執行。
例項:
> true || false and !false
=> true
如果想要自定義組合條件,需要使用括號()
。
例項:
> (false || false) && (false || true)
=> false
> false || false && false || true
=> true
在 Ruby 條件語句章節學習後,邏輯運算子才會大展身手。在今後接手的每一個專案之中,都會充斥著無數的邏輯運算。
4. 小結
本章中我們瞭解了什麼是布林值,在 Ruby 中布林值的 true 和 false 分別所屬 TrueClass 和 FalseClass。false和 nil 是真正的 false,而其他均為 true。知道了帶問號的方法只返回 true 或者 false 的約定規則。學習了與或非的邏輯運算。