• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby中proc和lambda的两个区别

Ruby中proc和lambda的两个区别

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了ruby proc,ruby和java的区别,ruby,ruby rose,ruby什么意思等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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
</div>

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

在proc中,如果参数比定义的多,会忽略多余参数,如果参数比定义的少,则自动把未传过来的参数指定为nil.
在lambda中,不管实际的参数比定义时的参数多还是少,都会抛出ArgumentError错误.

</div>

您可能想查找下面的文章:

  • Ruby中使用Block、Proc、lambda实现闭包
  • Ruby中的Proc类及Proc的类方法Proc.new的使用解析
  • 详解Ruby中的代码块对象Proc
  • Ruby中proc和lambda的两个区别
  • Ruby中的block、proc、lambda区别总结

相关文章

  • Ruby的XML格式数据解析库Nokogiri的使用进阶
  • Ruby中编写类与模块的风格指南
  • 编写Ruby代码注释时需要注意的一些问题
  • 在Mac OS X下安装Ruby运行环境的详细步骤
  • ruby 模块
  • ruby+nokogori抓取糗事百科前10页并存储进数据库示例
  • 采用UTF-8解决Ruby on Rails程序的中问题
  • Ruby中使用连续体Continuation实现生成器
  • ruby 杂项
  • Ruby简明教程之方法(Method)介绍

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Ruby实现生产者和消费者代码分享
    • Ruby面向对象编程详解
    • Ruby学习笔记二帮助生成Vim添加代码头的代码
    • Ruby简明教程之循环语句介绍
    • Rails中遇到错误跳转到统一提示错误页的方法
    • 创建自定义的Ruby gem包的教程
    • Ruby元编程小结
    • ruby 异常处理:ensure
    • 编写Ruby代码注释时需要注意的一些问题
    • Ruby中使用mechanize批量下载校内网相册照片

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有