• 爱情文章
  • 亲情文章
  • 友情文章
  • 生活随笔
  • 校园文章
  • 经典文章
  • 人生哲理
  • 励志文章
  • 搞笑文章
  • 心情日记
  • 英语文章
  • 范文大全
  • 作文大全
  • 新闻阅读
  • 当前位置: 山茶花美文网 > 搞笑文章 > 正文

    【Ruby中proc和lambda的两个区别】罗技c920和proc920区别

    时间:2020-05-13来源:山茶花美文网 本文已影响 山茶花美文网手机站

    这篇文章主要介绍了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错误.

    • 【Ruby中proc和lambda的两个区别】罗技c920和proc920区别 相关文章:
    • 爱情文章
    • 亲情文章
    • 友情文章
    • 随笔
    • 哲理
    • 励志
    • 范文大全