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