#enum 的遍历========= [1,2,3,4].all?{|i| i>=1} # 所有是否都符合条件 返回true [1,2,3,4].all?{|i| i>=2} #返回false [1,2,3,4].any?{|i| i>=2} #有任何一个符合条件 返回true [1,2,3,4].collect {|i| i+=1} #集合中的每个元素都传递调用block,运行以数组的方式返回 #enum.map 是collect 方法的别名 ['a','b','c','d'].each_with_index{|obj,i| puts "#{i} - #{obj}"} #便利集合,obj为元素,i为索引 #enum 的搜索======== #enum.find(ifnone=nil){|obj|block} 找到第一个符合的返回,找不到则返回 ifnone 的值 [1,2,3,4].find{|i| i>2} #返回3 [1,2,3,4].find_all{|i| i>2} #返回 [3,4] #enum.find_all 和enum.select 方法完全相同 [1,2,3,4].include?(3) #返回true #enum.inject(initial=nil){|memo,obj| block} #把集合中的每个obj执行block ,block的结果返回给 memo。如果指定了initial 的值,memo为initial的值,并且第一个元素不再进入迭代。 #eg: 求和 [1,2,3,4].inject{|sum,obj| sum+obj} #enum.partition{|obj|block} #返回两个数组,第一个是使block为真,第二个是使block为假 #如下: [1,2,3,4,5].partition{|i| i>2} #返回[[3,4,5],[1,2]] #enum 比较,排序============== [1,2,3,4].max #返回4 ["a","bb","ccc","dddd"].max{|a,b| a.length <=> b.length}#返回 dddd #enum.min 和max类似 [2,4,3,1].sort #返回 [1,2,3,4] ["a","ccc","bb","ddd"].sort{|obj| obj.length} #返回 ["a","bb","ccc","dddd"] ["ad","ac","a","ccc"].sort{|obj| [obj.length,obj]} #先按照长度,再按照字母来排序