ruby 的枚举

#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]} #先按照长度,再按照字母来排序

 

转载于:https://www.cnblogs.com/laoquans/p/3183599.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值