全方位探討Ruby布爾表達式
Ruby語言是一款完全面向對象的解釋型腳本語言。它從出現就倍受編程人員的關注。其特殊性能是非常值得我們關注的。在這里我們就為大家詳細介紹其中的Ruby布爾表達式相關知識。#t#
Ruby 對 "真" 的定義很簡單:任何不是 nil 或者 false 的值都是 true,所以下面的演示中,盡管 line 的值是字符串,依然可以完成整個循環。
- while line
= gets - puts line
- end
Ruby布爾表達式判斷采取 "短路求解"(當第一個操作書符合或不符合時,放棄后續判斷),同時定義了新的操作符 "defined?" 來判斷參數是否已經被定義。
- puts defined?(a)
- a = 1
- puts defined?(a)
輸出:
nil
local-variable
如果參數未定義,defined? 返回 nil,否則返回一個標記字符串。
Ruby布爾表達式和我們所習慣的布爾表達式不同的是,Ruby 操作符 &&、and、||、or 返回首個決定條件真偽參數值,而不是 true 或 false。
puts "a" && "b" # a 為真,所以決定表達式真偽的是 b,返回 b。
puts nil && "b" # nil 導致短路求解,故返回 nil。
puts "a" || "b" # 同樣是短路求解,返回 a。