浅谈Ruby中proc和lambda的区别

来源:爱站网时间:2018-09-29编辑:网友分享
今天小编给大家浅谈一下Ruby中proc和lambda的区别,感兴趣的朋友跟小编一起来了解一下吧!

  今天小编给大家浅谈一下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的区别之处了,想必都了解了吧,更多相关内容请继续关注爱站技术频道。

上一篇:Ruby多线程编程 新手教程

下一篇:ruby程序的实际执行顺序

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载