欢迎来到山村网

Ruby中proc和lambda的两个区别

2019-03-02 13:16:37浏览:180 来源:山村网   
核心摘要:  这篇文章主要介绍了Ruby中proc和lambda的两个区别,本文讲解了在proc和lambda中,return关键字有不同含义、检查参数的方式不同

  这篇文章主要介绍了Ruby中proc和lambda的两个区别,本文讲解了在proc和lambda中,return关键字有不同含义、检查参数的方式不同两个重要区别,需要的朋友可以参考下

  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错误.

(责任编辑:豆豆)
下一篇:

python使用正则表达式提取网页URL的方法

上一篇:

Ruby中require、load、include、extend的区别介绍

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com