Ruby Enumerable 模块中的方法——查询和选取
1. 用于查询的方法
这一类方法从对象查询并获取信息,而不是直接获取对象的元素
1.1 include?
-
include?(object)
如果self中存在元素element,使得
element==object
,则该方法返回true
1.2 member?
-
member?(object)
member?
是include?
的别名,用法同上
1.3 all?
-
all?
没有参数也没有块,此时判断self中是不是每个元素都为true,如果是则结果为true,否则为false
-
all?(pattern)
只接受一个pattern参数时,如果self中每个元素element,都满足
pattern===element
则返回true,否则返回false。值得说明的是,===方法用于判断右侧对象能否放入左侧容器,或者右侧对象是否是左侧对象的一个成员,因此上面表达式中pattern和element的位置不能互换。(虽然一般意义上,===在ruby中是一个普通的方法,其含义由类的编写者确定) -
all?(pattern){|element| ...}
同时给出参数和块时,如果块中语句对每个元素均为true,则方法返回值为true,否则给出false
1.4 any?
和上述all?
类似,只不过此时只要有一个元素满足条件就返回true,调用形式按照是否给出参数和块可以分成如下三种:
any?
any?(pattern)
any?(pattern){|element| ...}
1.5 none?
所有元素均不满足判断条件时返回true,否则结果为false,调用形式同理分为三种:
none?
none?(pattern)
none?(pattern){|element| ...}
1.6 one?
有且仅有一个元素满足判断条件时返回true,否则结果为false,调用形式同理分为三种:
one?
one?(pattern)
one?(pattern){|element| ...}
1.7 count
返回满足条件的元素数量
-
count
返回元素总数
-
count(pattern)
返回和pattern相等的元素的数量
-
count(pattern){|element| ...}
element依次被赋值为每一个元素,返