内部常数
TRUE ((<obsolete>))
真值的代表。与true相同。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进行编译。