标签:
Enumberable可枚举模块可以理解为对遍历搜索和比较排序集合的抽象。这个模块可以通过mixin为类提供两种能力:
puts [1,2,3,4].all?{|i| i>0} #true
puts [1,2,3,4].all?{|i| i>3} #false
<span style="white-space:pre"> </span> puts [1,2,3,4].any?{|i| i>3} #true
<span style="white-space:pre"> </span>puts [1,2,3,4].collect{|i| i+1 } #[2,3,4,5]
与each类似,第一个参数为每个元素,第二个为元素对应的坐标
<span style="white-space:pre"> </span>puts [1,2,3,4].each_with_index{|item,index| puts "#{item}-#{index}"} #1-0 2-1 3-2 4-3 [1,2,3,4]
注意:执行完后返回集合本身
找出集合中第一个符合条件的,没有返回ifnone代码块
<span style="white-space:pre"> </span>block=Proc.new(){puts "hello"} puts [1,2,3,4].find(block){|item| item>5} #hello
返回符合条件的缩影元素
<span style="white-space:pre"> </span>result=[1,2,3,4].partition(){|item| item>1} <span style="white-space:pre"> </span>puts result[0] #{2,3,4} <span style="white-space:pre"> </span>puts "=====" <span style="white-space:pre"> </span>puts result[1]
<span style="white-space:pre"> </span>puts ["a","abc","ab"].sort{|a,b| a.length<=>b.length}
<span style="white-space:pre"> </span>#["a","ab","abc"]
标签:
原文地址:http://blog.csdn.net/fengyutubu/article/details/42598907