参考手册:标准库——内部常数
TRUE ((<obsolete>))
真值的代表。与true相同。php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby中把所有非伪值(即非false又非nil的值)都看作真。(请参考obsolete。)
FALSE ((<obsolete>))
伪值。与false相同。(请参考obsolete。)
NIL ((<obsolete>))
与nil相同。(请参考obsolete。)
STDIN
标准输入。$stdin的默认值。
STDOUT
标准输出。$stdout的默认值。
STDERR
标准错误输出。$stderr的默认值。
ENV
表示环境变量的(伪)哈希表(详情请参考ENV)。若改变该哈希表的值时,将作为子进程环境而被继承下来。
ARGF
由参数(若没的话就使用标准输入)构成的虚拟文件(详情请参考ARGF)。也就是说,gets与ARGF.gets的意义相同。可以使用ARGF.file得到当前读入的文件对象,使用ARGF.filename得到当前读入的文件名。
ARGV
传给Ruby脚本的参数。内部变量$*的别名。而面向Ruby自身的参数已经被摘除。
DATA
访问脚本中__END__(脚本终点)以后部分的File对象。
注意:
* 使用DATA.rewind后的读取位置不再是__END__后面,而是脚本文件的开头。
* 若读入脚本时使用的是标准输入的话,则为标准输入。
* 如果读入脚本时并没有使用文件或标准输入,或者脚本并非以__END__结束时,则该定义将不再适用。
* 即使用require或load加载文件时,也并不是指该文件(_FILE_),而是指运行文件($0)。
TOPLEVEL_BINDING
顶层中的Binding对象。
RUBY_VERSION
显示Ruby版本的字符串。Ruby版本信息的形式为major.minor.teeny。(当前)各个号码的位数不会超过2位,因此
if RUBY_VERSION >= '1.6.7'
# 在1.6.7以后的版本中有效的操作
else
# 在此之前的版本中有效地操作
end
按照版本信息的不同来进行分支处理。
在1.8以前的版本中,minor是奇数时则为开发版,minor是偶数时则为稳定版。在1.9.0以后的版本中,teeny为0的版本是开发版。
RUBY_RELEASE_DATE
显示Ruby发布日期的字符串。
RUBY_PLATFORM
显示平台信息的字符串。
VERSION ((<obsolete>))
RELEASE_DATE ((<obsolete>))
PLATFORM ((<obsolete>))
这些都是前面那些常数RUBY_XXX的旧名称。请参考obsolete。
ruby 1.9 特性: 这些常数已经停用。
SCRIPT_LINES__
默认情况下,该常数不会被定义。
若将该常数定义为哈希表后,在编译源代码时,源文件名将成为哈希表元素的索引,而源文件的内容会被按行切分后转化为数组,该数组将成为哈希表元素的内容。在调试(debug.rb)等场合会用到该常数。
SCRIPT_LINES__ = {}
require 'English'
p SCRIPT_LINES__
# 注: 输出内容被处理过。
# => {"/usr/local/lib/ruby/1.6/English.rb"=>
["alias $ERROR_INFO $!\n",
"alias $ERROR_POSITION $@\n",
"alias $LOADED_FEATURES $\"\n",
:
:
"alias $POSTMATCH $'\n",
"alias $LAST_PAREN_MATCH $+\n"]}
另外,只有在$SAFE等级为0时才有效。同时,也不能由eval进行编译。