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

ruby 过程对象 解析

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

通过本文主要向大家介绍了ruby,ruby碧玺,ruby woo口红,mac ruby woo口红,ruby教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
我们总是希望对未知事件分类.当它发生时,向其它方法传递一块作为参数的代码是最容易地解决方法,也就是说我们希望像处理数据一样处理代码.

一个新的过程对象可以通过proc创建:

ruby> quux = proc {
    |   print "QUUXQUUXQUUX!!!\n"
    | }
   #<Proc:0x4017357c>  


现在quux指向一个对象,像其它对象一样,它也有可以调用的行为.特别的,我们可以用call方法执行它:

ruby> quux.call
QUUXQUUXQUUX!!!
   nil  


那么quux可以用做一个方法的参数吗?当然.

ruby> def run( p )
    |   print "About to call a procedure...\n"
    |   p.call
    |   print "There: finished.\n"
    | end
   nil
ruby> run quux
About to call a procedure...
QUUXQUUXQUUX!!!
There: finished.
   nil  


trap方法令到我们可以对任何系统信号做出我们自己的选择.

ruby> inthandler = proc{ print "^C was pressed.\n" }
   #<Proc:0x401730a4>
ruby> trap "SIGINT", inthandler
   #<Proc:0x401735e0>  


一般的,敲入^C将导致解释器退出.但现在一个信息被打印出来,解释器继续执行着,所以你不会丢失掉正在作业的工作.(你不会永远留在解释器里,你仍可以用 exit 或者按 ^D退出)

最后在我们开始下一节之前还应注意的一点是:在将一个过程对象捆绑到一个信号之前,不是必须给这个过程对象命名的.一个等效的匿名(anonymous)过程对象像这样

ruby> trap "SIGINT", proc{ print "^C was pressed.\n" }
   nil  


或着更简略,

ruby> trap "SIGINT", 'print "^C was pressed.\n"'
   nil  


这种简写为你提供了一种方便和可读性更强的写小匿名过程的路子. 
</div>

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

  • ruby迭代map的简洁写法实现原理分析
  • Ruby中访问SQL Server数据库的配置实例
  • ruby声明式语法的实现例子
  • Ruby中的Range对象学习笔记
  • Ruby中的String对象学习笔记
  • Ruby的基本语法学习总结
  • Ruby中的方法(函数)学习总结
  • Ruby中的变量学习总结
  • Ruby数组(Array)学习笔记
  • Ruby和元编程之万物皆为对象

相关文章

  • 实例讲解Ruby中的钩子方法及对方法调用添加钩子
  • 详解Ruby中的块的知识
  • Terry七月Ruby读书笔记(比较详细)第1/4页
  • Rails中使用MySQL分区表一个提升性能的方法
  • 举例初步讲解Ruby中的正则表达式
  • Ruby中检测Gem是否安装的方法
  • Ruby基础知识之基本流程控制
  • Ruby实现发送邮件的两个方法
  • Ruby实现的最长公共子序列算法
  • CentOS 6.3下编译安装Ruby 2.0笔记

文章分类

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

最近更新的内容

    • CentOS中配置Ruby on Rails环境
    • Ruby 字符串处理
    • 举例初步讲解Ruby中的正则表达式
    • Ruby中使用Nokogiri包来操作XML格式数据的教程
    • 简单介绍Ruby on Rails对PostgreSQL数组类型的支持
    • 比较详细的ruby symbol 学习资料
    • rails上传图片代码实例
    • Ruby中对一元操作符重载实例
    • Ruby使用C++扩展实例(含C++扩展代码示例)
    • Ruby简洁学习笔记(一):字符串、数字、类和对象

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

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