通过示例了解Ruby中的布尔方法

大多数编程语言都有一个称为“布尔”的数据类型。 这是
一种只有两个可能值的数据形式(通常为“ true”和
“假”)。 但是,Ruby语言没有布尔数据
类型。

Ruby具有布尔方法,否则称为谓词或查询。 这些方法以问号(?)结尾。 值得注意的是, 在Ruby中 ,只有“ false” 和“ nil ”值评估为false。

让我们举个例子吧? 布尔方法;

%w[ant bear cat] .all? { |word| word.length >= 3 } #=> true
%w[ant bear cat] .all? { |word| word.length >= 4 } #=> false
%w[ant bear cat] .all?( /t/ )                        #=> false
[ 1 , 2 i, 3.14 ].all?(Numeric)                       #=> true
[ nil , true , 99 ].all?                              #=> false
[].all?                                           #=> true

全部? 方法将集合的每个元素传递到给定的块。 如果该块从不返回false或nil,则该方法返回true。 如果未提供该块,则Ruby将添加一个隐式块{| obj | obj}会导致什么? 当集合成员都不为false或nil时返回true。

如果改为提供了模式,则该方法返回是否为每个集合成员返回pattern ===元素。

与任何类似的情况? 方法

%w[ant bear cat] .any? { |word| word.length >= 3 } #=> true
%w[ant bear cat] .any? { |word| word.length >= 4 } #=> true
%w[ant bear cat] .any?( /d/ )                        #=> false
[ nil , true , 99 ].any?(Integer)                     #=> true
[ nil , true , 99 ].any?                              #=> true
[].any?                                           #=> false

从上面的示例中,我们可以得出结论,当我们有一个返回布尔值(“ true”或“ false”)的方法时,方法末尾的问号(?)已设置。

创建布尔方法

除了Ruby提供的布尔方法外,您还可以创建自己的布尔方法。

例如;

def is_even? (x)
  (x % 2 ) == 0 
end

def is_odd? (x)
  (x % 2 ) == 1 
end 

def multiples_of_five? (x)
 (x % 5 ) == 0
end

def less_than_three? (x)
  x < 3 
end 

puts is_even?( 2 ) 
puts is_even?( 3 ) 
puts is_odd?( 2 ) 
puts is_odd?( 3 ) 
puts multiples_of_five?( 3 ) 
puts multiples_of_five?( 5 ) 
puts less_than_three?( 2 ) 
puts less_than_three?( 4 ) 

这将导致以下情况

true
false
false
true
false
true
true
false

总而言之,我们已经了解到;

  1. 以问号(?)结尾的方法称为布尔方法;
  2. 布尔方法必须返回true或false;
  3. 您可以在Ruby中创建自己的布尔方法

From: https://hackernoon.com/understanding-boolean-methods-in-ruby-with-examples-363n36nu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值