跳到主要内容

Ruby 布尔对象

本章节我们学习布尔值,了解什么是布尔值,在 Ruby 中布尔值的基本用法。

1. 什么是布尔值

布尔值是 True 或 False 中的一个。动作脚本也会在适当时将值 True 和 False 转换为 1 和 0。布尔值经常与动作脚本语句中通过比较控制脚本流的逻辑运算符一起使用。——官方定义

布尔值代表着真和假,在代码上,通常显示为truefalse

2. 在 Ruby 中使用布尔值

在 Ruby 中布尔值是一个特殊的对象。它由两个类组成,分别为TrueClassFalseClass。他们两个类分别只有一个唯一的实例,为truefalse

实例:

> true.class 
=> TrueClass
false.class
=> FalseClass

解释:在 Ruby 中,每一个对象拥有可以查看自己所属类的方法,名为class,从上述的实例中我们看到,truefalse分别属于TrueClassFalseClass两个类。

注意事项:在 Ruby 中nil表示空,所有对象都可以转成布尔值,只有falsenil才真的是false,其他的均为true,即便是 0。这部分内容在条件语句中会给出具体例子。

经验:当返回的方法是布尔值的时候,要使用?作为方法的结尾,这个要当做是Ruby代码的编写规范。方法的定义稍后会在Ruby的方法章节具体给出例子。我们统称这种结尾带问号的方法为布尔方法

实例:

# 判断123是空吗?
> 123.nil?
=> false

# 判断字符串daadsasd是否内部定义了downcase方法
> "daadsasd".respond_to?("downcase!")
=> true

3. 逻辑运算符

在 Ruby 中我们在执行一些复杂的判断的时候会使用到逻辑运算符(也就是与、或、非),具体的表格如下:

运算符时机简介(调用的时机)例子
and当左右都为true的时候才为truetrue and true => true
&&当左右都为true的时候才为truetrue && true => true
or当左右存在一个true的时候就为truetrue or false => true
nottrue变为false,false变为trueTrue
!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 的约定规则。学习了与或非的逻辑运算。