Skip to content

Ruby 预定义常量

Ruby 提供了一组预定义常量,它们在整个程序中都可用。理解这些常量会有所帮助,尽管其中一些比另一些使用更频繁。

下表列出了 Ruby 中一些最值得注意的预定义常量:

注意:虽然 TRUE、FALSE 和 NIL(全部大写)存在是为了向后兼容,但现代 Ruby 代码只使用它们的小写对应项:true、false 和 nil。强烈建议使用小写版本。

常量名描述
trueTrueClass 的单例实例。表示布尔真值。
falseFalseClass 的单例实例。表示布尔假值。
nilNilClass 的单例实例。表示值的缺失。
ARGF一个对象,用于访问作为命令行参数传递的文件或标准输入(如果未提供参数)的虚拟串联。它是 $< 的同义词。
ARGV一个包含传递给脚本的命令行参数的数组。它是 $* 的同义词。
DATA一个 IO 流,用于读取源文件中出现在 __END__ 指令之后的代码行。如果不存在 __END__,则它是未定义的。
ENV一个类似 hash 的对象,代表环境变量。你可以像标准 Ruby Hash 一样与其交互(例如,ENV['PATH'])。
RUBY_PLATFORM一个字符串,标识 Ruby 解释器运行所在的平台(例如,"x86_64-linux")。
RUBY_RELEASE_DATE一个字符串,指示当前 Ruby 解释器的发布日期(例如,"2023-03-30")。
RUBY_VERSION一个字符串,指示当前 Ruby 解释器的版本(例如,"3.2.2")。
STDERR标准错误输出流。默认情况下,错误消息打印到这里。对应于 $stderr。
STDIN标准输入流。默认情况下,gets 从这里读取。对应于 $stdin。
STDOUT标准输出流。默认情况下,puts 和 print 写入到这里。对应于 $stdout。
TOPLEVEL_BINDING一个 Binding 对象,代表程序的顶层作用域。

许多这些常量提供了对 Ruby 运行时环境的洞察,或促进与操作系统的交互。例如,ARGV 对于编写命令行工具至关重要,而 ENV 对于根据环境配置应用程序至关重要。

如需完整的列表和更多详情,请参阅官方 Ruby 文档。