解析 ruby 全局变量

所属分类: 脚本专栏 / ruby专题 阅读数: 1182
收藏 0 赞 0 分享
 全局变量由$开头.它们可以在程序的任何位置访问到.在初始化前,全局变量有一个特殊的值 nil.

ruby> $foo
   nil
ruby> $foo = 5
   5
ruby> $foo
   5  


应谨慎使用全局变量.由于在任何地方都可以被写因此他们相当危险.滥用全局变量会导致很难隔离臭虫;同时也视为程序的设计未经严格考虑.当你发现必须要使用全局变量时,记得给它一个不会在其它地方一不小心就用到的描述性名字(像上面那样叫$foo可能不是一个好想法).

全局变量的好处是其可以被跟踪;你可以做一个当变量值改变时被调用的过程.

ruby> trace_var :$x, proc{print "$x is now ", $x, "\n"}
   nil
ruby> $x = 5
$x is now 5
   5  


当一个全局变量(改变时)作为一个过程的激发器,我们也管它叫活动变量(active variable).比如说,它可用于保持GUI显示的更新.

这里列出了一些以$打头并跟单个字符的特殊变量.比如,$$包含了Ruby解释器的进程id,它是只读的.这里是主要的系统变量以及它们的含义(细节可在Ruby的参考手册中查到):

$!  最近一次的错误信息 
$@  错误产生的位置 
$_  gets最近读的字符串  
$.  解释器最近读的行数(line number) 
$&  最近一次与正则表达式匹配的字符串 
$~  作为子表达式组的最近一次匹配  
$n  最近匹配的第n个子表达式(和$~[n]一样)  
$=  是否区别大小写的标志  
$/  输入记录分隔符 
$\  输出记录分隔符 
$0  Ruby脚本的文件名 
$*  命令行参数 
$$  解释器进程ID 
$?  最近一次执行的子进程退出状态 

上面的 $_ 和 $~ 都有作用范围.它们的名字暗示其为全局的,但它们一般都是这样用的,关于它们的命名有历史上的原因.  
 
更多精彩内容其他人还在看

Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略

这篇文章主要介绍了Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略,用到了RVM,此种服务器搭建配置极力推荐!需要的朋友可以参考下
收藏 0 赞 0 分享

在Ruby on Rails中使用Markdown的方法

这篇文章主要介绍了在Ruby on Rails中使用Markdown的方法,不过依赖于pygments.rb这个工具,事先得安装Python,需要的朋友可以参考下
收藏 0 赞 0 分享

在博客中屏蔽垃圾留言的简单方法

这篇文章主要介绍了在博客中屏蔽垃圾留言的简单方法,作者以Ruby on Rails搭建的博客应用为例,需要的朋友可以参考下
收藏 0 赞 0 分享

快速安装Ruby on Rails的简明指南

这篇文章主要介绍了快速安装Ruby on Rails的简明指南,Rails是Ruby上人气绝对最高的web开发框架,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby版本管理工具RVM的安装和使用教程

这篇文章主要介绍了Ruby版本管理工具RVM的安装和使用教程,本文示例基于类Unix的系统环境,需要的朋友可以参考下
收藏 0 赞 0 分享

使用rbenv来管理Ruby版本的方法

这篇文章主要介绍了使用rbenv来管理Ruby版本的方法,文中示例基于Mac OS系统进行演示,需要的朋友可以参考下
收藏 0 赞 0 分享

浅析Ruby的源代码布局及其编程风格

这篇文章主要介绍了浅析Ruby的源代码布局及其编程风格,意为给大家推荐一种最为普通的Ruby代码编写风格,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby编程中的语法使用风格推荐

这篇文章主要介绍了Ruby编程中的语法使用风格推荐,好的代码书写风格有助于debug等工作的进行,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby编程中的命名风格指南

这篇文章主要介绍了Ruby编程中的命名风格指南,包括变量和自定义方法等的常用命名格式,需要的朋友可以参考下
收藏 0 赞 0 分享

编写Ruby代码注释时需要注意的一些问题

这篇文章主要介绍了编写Ruby代码注释时需要注意的一些问题,特别是在团队协作时好的注释能大大增加代码的可读性,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多