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
总而言之,我们了解到了这一点;
- 以问号(?)结尾的方法称为布尔方法;
- 布尔方法必须返回true或false;
- 您可以在Ruby中创建自己的布尔方法
翻译自: https://hackernoon.com/understanding-boolean-methods-in-ruby-with-examples-363n36nu
ruby推送示例