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。