Ruby入门介绍第2/5页

 更新时间:2007年10月20日 19:00:36   作者:  

二、BEGIN & END
BEGIN 块


BEGIN 块中的代码在所有代码执行之前执行,Ruby 允许设置多个 BEGIN 块并按出现的顺序执行块中的代码。C# 程序员注意下面的代码
BEGIN { print "OnInit(object sender, EventArgs args)\n" } BEGIN { print "OnLoad(object sender, EventArgs args)\n" } print "Running"
上面的代码看上去很美吧,可惜的是上面的代码段会出现 parse error,正确的代码应该是
BEGIN{ print "OnInit(object sender, EventArgs args)\n" } BEGIN{ print "OnLoad(object sender, EventArgs args)\n" } print "Running"
正如上面的代码段所呈现的,只有当起始大括号和 BEGIN 标识符位于同一行时块内的代码才能得到正确的执行。同时 BEGIN 块也不受任何控制结构的影响,因为只要出现 BEGIN 块就会得到执行并且只执行一次。
1i = 0 2while i < 10 3 # 虽然处理循环结构中,但 BEGIN 块内的代码仍然只执行一次 4 BEGIN{ 5 print "OnInit(object sender, EventArgs args)\n" 6 } 7 i += 1 8end 9 10if false 11 # BEGIN 完全不受 if 的影响,只要出现 BEGIN 块就会得到执行 12 BEGIN{ 13 print "OnLoad(object sender, EventArgs args)\n" 14 } 15end 16 17print "Running"
基于只要现出 BEGIN 就会得到执行和 BEGIN 在所有代码执行之前执行的原则,即使 BEGIN 块前出现了代码,该代码仍然会等待 BEGIN 块执行之后再执行。比如下面的代码段输出结果仍然是 OnInit - OnLoad - Running。
print "OnLoad(object sender, EventArgs args)\n" BEGIN{ print "OnInit(object sender, EventArgs args)\n" } print "Running"
END 块

END 块与 BEGIN 块相反,在所有代码执行之后执行,多个 END 块时最先出现的 END 块最后执行。除此之外,END 块虽然不受 while 的影响,但是可能通过 if 来控制 END 块的执行与否。比如下面代码的输出结果就是 Start - Load - Unload。
if false END{ # 永远不输出 print "Init" } end END{ # 最后输出 print "Unload\n" } END{ # 先于 Unload 输出 print "Load\n" } # 最先输出 print "Start\n"

相关文章

  • ruby中并发并行与全局锁详解

    ruby中并发并行与全局锁详解

    最近在学习ruby,想着将自己学习的内容总结一下分享出来,下面这篇文章主要给大家介绍了关于ruby中并发并行与全局锁的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • 用Ruby进行CGI编程的入门指引

    用Ruby进行CGI编程的入门指引

    这篇文章主要介绍了用Ruby进行CGI编程的入门指引,编写CGI脚本也是Ruby用于网络编程的一项基础功能,需要的朋友可以参考下
    2015-05-05
  • 浅析Ruby中的正则表达式的使用

    浅析Ruby中的正则表达式的使用

    这篇文章主要介绍了浅析Ruby中的正则表达式的使用,作者根据Ruby对正则表达式的支持提出了其中一些需要注意的地方,需要的朋友可以参考下
    2015-08-08
  • 在Ruby中查找和执行方法

    在Ruby中查找和执行方法

    这篇文章主要介绍了在Ruby中查找和执行方法,是Ruby入门学习中的基础知识,需要的朋友可以参考下
    2015-07-07
  • 浅析Ruby中的类对象的概念

    浅析Ruby中的类对象的概念

    这篇文章主要介绍了Ruby中的类对象的概念,是Ruby学习当中的基础知识,需要的朋友可以参考下
    2015-05-05
  • 借助RubyGnome2库进行GTK下的Ruby GUI编程的基本方法

    借助RubyGnome2库进行GTK下的Ruby GUI编程的基本方法

    这篇文章主要介绍了借助RubyGnome2库进行GTK下的Ruby GUI编程的基本方法,介绍了基本的UI和事件响应的相关实现,需要的朋友可以参考下
    2015-12-12
  • Ruby创建“关键字”同名方法别名的方法

    Ruby创建“关键字”同名方法别名的方法

    这篇文章主要介绍了Ruby创建“关键字”同名方法别名的方法,本文提示的是一个小技巧,特殊场景时可能会用到,需要的朋友可以参考下
    2015-01-01
  • ruby实现网页图片抓取

    ruby实现网页图片抓取

    本文给大家分享的是个人使用ruby编写的抓取网页图片的代码,十分的简单实用,有需要的小伙伴可以参考下。
    2015-06-06
  • 详解Ruby设计模式编程中对单例模式的运用

    详解Ruby设计模式编程中对单例模式的运用

    这篇文章主要介绍了Ruby设计模式编程中对单例模式的运用,讲到了包括对Singleton模块的使用,需要的朋友可以参考下
    2016-03-03
  • Ruby下WebDriver的相关操作指南

    Ruby下WebDriver的相关操作指南

    这篇文章主要介绍了Ruby下WebDriver的相关操作指南,同时也介绍了启动firefox drive加载firebug扩展的方法,需要的朋友可以参考下
    2015-07-07

最新评论