首页 > 编程 > Ruby > 正文

浅谈Ruby中proc和lambda的区别

2020-02-24 15:40:22
字体:
来源:转载
供稿:网友

  今天小编给大家浅谈一下ruby.html" target="_blank">Ruby中proc和lambda的区别,感兴趣的朋友跟小编一起来了解一下吧!

  1、在proc和lambda中,return关键字有不同含义:

  在proc中,return仅仅表示从这个lambda中返回.

  在lambda中,return不是从proc中返回,而是从定义proc的作用域中返回.

  复制代码 代码如下:

  def one_method

  p = Proc.new{return 10} #调用这个块的时候,从p的作用域直接返回10,因此下面的return将不会执行

  result = p.call

  return result * 2

  end

  def two_method

  p = lambda{return 10} #调用这个块的时候,从lambda中返回10

  result = p.call

  return result * 2 #继续执行

  end

  puts one_method # 10

  puts two_method # 20

  2、在proc和lambda中,检查参数的方式不同:

  在proc中,如果参数比定义的多,会忽略多余参数,如果参数比定义的少,则自动把未传过来的参数指定为nil.

  在lambda中,不管实际的参数比定义时的参数多还是少,都会抛出ArgumentError错误.

  以上就是Ruby中proc和lambda的区别之处了,想必都了解了吧,更多相关内容请继续关注武林技术频道。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选