rhyming methods(ruby)

      标题的意思是“押韵方法”(摘自《Ruby Programming Language》)。这个押韵(rhyming)的单词我还真不知道,看到这里就楞住了,还纳闷这是什么方法呢。往下一看就明白了,原来说的就是4个押韵的方法:collect、select、reject和inject。

 

      这4个方法都是“可枚举对象”(Enumerable Objects)的方法,并且它们都用到了迭代器(iterator)。
(注:可枚举对象包括数组、区间、哈希等定义了each方法的对象)


      collect:这个方法运行关联的block时,把可枚举对象中的每一个成员做为参数传给block,并且将block处理后的值放到一个数组中返回。


      select:类似collect,也是将可枚举对象中的每一个成员做为参数传递给相关联的block,但是它只将经过block处理后,不为nil或者false的值放到一个数组中返回。


      reject:这个方法与select恰恰相反,它是只将经过block处理后,为nil或者false的值放到一个数组中返回。


      inject:这个方法略微复杂点,值得记住的是它传递给相关联block的参数。参数有两个,第二个参数的取值,就是可枚举对象中的下一个成员(为参加运算的第一个成员);而第一个参数的取值总体来说是上一个迭代的运算结果,而这个参数的初始值的取值分为两种情况:1、如果inject方法有参数(inject(Arguments)),那么这个参数做为调用block时传给block的第一个参数;2、如果inject方法没有参数,那么取可枚举对象的第一个成员做为调用block时传递的第一个参数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值