Ruby Proc 和 lambda的共同点和区别

时间:2015-03-30 18:13:50   收藏:0   阅读:104

Proc 和 lambda 的共同点:

Proc 和 lambda 的区别:

  1. lambda检查传入的参数,如果传入不正确的参数就throw an error; Proc 则不检查,即使传入不正确的参数也只会忽视它,并把nil赋值给结果(assign nil to any that are missing.)。
  2. lambda返回时把控制权交还给它的调用函数,而Proc则不会交换。

    def batman_ironman_proc
    victor = Proc.new { return "Batman will win!" }
    victor.call
    "Iron Man will win!"
    end

    puts batman_ironman_proc

    def batman_ironman_lambda
    victor = lambda { return "Batman will win!" }
    victor.call
    "Iron Man will win!"
    end

    puts batman_ironman_lambda

    输出结果====》Batman will win!
                          Iron Man will win! 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!