ruby设置环境变量:解析 ruby 全局变量

  全局变量由$开头.它们可以在任何位置访问到.在化前,全局变量有个特殊值 nil.

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


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

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

ruby> trace_var :$x, proc{pr "$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

  $? 最近次执行子进程退出状态

  上面 $_ 和 $~ 都有作用范围.它们名字暗示其为全局,但它们般都是这样用,有关它们命名有历史上原因.

Tags:  php全局变量 vb全局变量 全局变量 ruby设置环境变量

延伸阅读

最新评论

发表评论