Ruby基础代码经验分享

开发 后端
Ruby基础代码的熟练掌握,可以方便我们将来更加深入的对Ruby语言的学习。通过这篇文章的介绍,我们完全可以掌握这些Ruby基础代码。

Ruby语言的学习和其他编程语言一样,首先要从基础开始。在这里我们为大家介绍了一下Ruby基础代码中的BEGIN和END的编写方式。#t#

Ruby基础代码之BEGIN 块

BEGIN 块中的代码在所有代码执行之前执行,Ruby 允许设置多个 BEGIN 块并按出现的顺序执行块中的代码。C# 程序员注意下面的代码

  1. BEGIN  
  2. {  
  3. print "OnInit(object sender, 
    EventArgs args)\n"  
  4. }  
  5. BEGIN  
  6. {  
  7. print "OnLoad(object sender, 
    EventArgs args)\n"  
  8. }  
  9. print "Running" 

上面的代码看上去很美吧,可惜的是上面的代码段会出现 parse error,正确的代码应该是

  1. BEGIN{  
  2. print "OnInit(object sender, 
    EventArgs args)\n"  
  3. }  
  4. BEGIN{  
  5. print "OnLoad(object sender,
     EventArgs args)\n"  
  6. }  
  7. print "Running" 

 

正如上面的代码段所呈现的,只有当起始大括号和 BEGIN 标识符位于同一行时块内的代码才能得到正确的执行。同时 BEGIN 块也不受任何控制结构的影响,因为只要出现 BEGIN 块就会得到执行并且只执行一次。

  1. i = 0 
  2. while i < 10 
  3. # 虽然处理循环结构中,但 BEGIN 
    块内的代码仍然只执行一次  
  4. BEGIN{  
  5. print "OnInit(object sender, 
    EventArgs args)\n"  
  6. }  
  7. i += 1  
  8. end  
  9. if false  
  10. # BEGIN 完全不受 if 的影响,
    只要出现 BEGIN 块就会得到执行  
  11. BEGIN{  
  12. print "OnLoad(object sender,
     EventArgs args)\n"  
  13. }  
  14. end  
  15. print "Running" 

 

基于只要现出 BEGIN 就会得到执行和 BEGIN 在所有代码执行之前执行的原则,即使 BEGIN 块前出现了代码,该代码仍然会等待 BEGIN 块执行之后再执行。比如下面的代码段输出结果仍然是 OnInit - OnLoad - Running。

  1. print "OnLoad(object sender, 
    EventArgs args)\n"  
  2. BEGIN{  
  3. print "OnInit(object sender,
     EventArgs args)\n"  
  4. }  
  5. print "Running" 

 

Ruby基础代码之END 块

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

  1. if false  
  2. END{  
  3. # 永远不输出  
  4. print "Init"  
  5. }  
  6. end  
  7. END{  
  8. # 最后输出  
  9. print "Unload\n"  
  10. }  
  11. END{  
  12. # 先于 Unload 输出  
  13. print "Load\n"  
  14. }  
  15. # 最先输出  
  16. print "Start\n" 

以上就是我们为大家介绍的Ruby基础代码讲解。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-17 09:49:18

Ruby代码管理

2009-12-16 16:37:59

Ruby on Rai

2009-12-16 15:23:33

Ruby on rai

2009-12-15 14:51:50

Ruby继承

2009-12-18 17:24:12

Ruby配置Mysql

2009-12-15 10:23:23

Ruby应用技巧

2013-11-21 15:30:32

EMCSAP中国商业同略会

2009-12-17 18:12:31

Ruby框架应用

2010-01-13 18:09:09

VB.NET动态生成代

2009-12-18 10:47:16

Ruby装饰模式

2009-12-15 18:24:02

Ruby连接到orac

2009-12-15 18:15:24

Ruby连接到LDAP

2009-09-28 10:52:00

CCNA考试经验CCNA

2009-12-17 13:37:24

Ruby代码块

2009-12-16 10:10:16

Ruby打开关闭文件

2009-12-18 14:10:29

Ruby访问剪贴板

2009-12-17 10:18:17

Ruby创建构造器

2009-12-16 11:04:51

Ruby操作文件权限

2013-05-03 13:45:42

KVM故障调试

2009-12-22 19:26:51

WCF绑定
点赞
收藏

51CTO技术栈公众号