ruby学习笔记--Blocks

Proc的两个使用方法

ruby 代码
  1. def some_mtd1 aproc     
  2.   aproc.call     
  3. end     
  4. some_mtd1 lambda { puts "aaaaa" }   
  5.  

 这个代码等同于下面这个代码段

ruby 代码
  1. def some_mtd2 &bproc        
  2.   bproc.call        
  3. end        
  4. some_mtd2 { puts "aaaaa" }     

 也等同于下面代码

ruby 代码
  1. ab = lambda { |x| puts x }      
  2. ab.call 'aaaaa'   

c = lambda { |i| puts i }
c = Proc.new { |i| puts i }
c = proc { |i| puts i } 

The above 3 statements do the same thing: instantiate a block object. ‘proc’ is an alias for ‘lambda‘ and they work slightly different than ‘Proc.new‘. In Ruby 1.9, ‘proc’ will probably be an alias for ‘Proc.new‘ instead.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值