ruby推送示例_通过示例了解Ruby中的布尔方法

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中创建自己的布尔方法

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

ruby推送示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值