Ruby 预先定义的变量和常量

Ruby 预先定义的变量和常量

Ruby预定义变量

Ruby包含了大量的预定义变量。每个预定义变量都有自己的规范。你可以使用预定义变量来执行一个特定的任务,比如在处理解释器参数或正则表达式时。Ruby中的预定义变量列表如下所示。

变量 描述
$! 它持有上一次’raise’所设定的异常信息信息。$ERROR_INFO的别名。
$@ 它持有最后一次异常发生时的回溯信息数组。$ERROR_POSITION的别名。
$/ 输入记录的分隔符,默认为换行。如果它被设置为nil,那么整个文件将被一次性读取。INPUT_RECORD_SEPARATOR的别名。 打印和IO#写的输出分隔符,默认为nil。OUTPUT_RECORD_SEPARATOR的别名。
$, 用于打印的输出字段分隔符和Array#join的默认分隔符。$OUTPUT_FIELD_SEPARATOR的别名。
$; 是String#split的默认分隔符。$FIELD_SEPARATOR的别名。
$. 它保持当前从最后一个文件中读取的输入行数。$INPUT_LINE_NUMBER的别名。
$< 一个可以访问所有作为命令行参数或stdin的文件内容的连接的对象。DEFAULT_INPUT的别名。
$> 它是kernel.print和kernel.printf的输出目的地,默认值是stdout。DEFAULT_OUTPUT的别名。
$& 最后一个模式匹配的字符串。$MATCH的别名。
$` 最后一个模式匹配左边的字符串。$PREMATCH的别名。
$’ 最后一个模式匹配的右边的字符串。$POSTMATCH的别名。
$+ 与上次成功匹配的模式中的最后一个匹配组相关的字符串。$LAST_PAREN_MATCH的别名。
$1-$9 在最后一次成功匹配的模式中,与第n组匹配的字符串。
$_ 当前范围内由get或readline读取的最后一个输入行。它是一个局部变量。是$LAST_READ_LINE的别名。
$~ 它保存了当前作用域中最后一次匹配的信息。它是一个局部变量。$LAST_MATCH_INFO的别名。
$-p 如果选项-p被设置,则为真(循环模式开启)。它是一个只读的变量。
$-l 如果选项-l被设置,则为真(行结束过程被打开)。这是一个只读的变量。
$-i 如果设置了in-place-edit模式,这个变量保持扩展,否则为零。
$-a 如果设置了选项-a(自动分割模式为1),则为真。它是只读变量。
$-d -d的级别是开关。是$DEBUG的别名。
$-v 冗长的标志。它由-v开关设置。$VERBOSE的别名。
$-K 源代码的字符编码。$KCODE的别名。
$0 包含正在执行的脚本的名称。
$$ 当前正在执行的Ruby程序的进程号。$PROCESS_ID的别名。
$? 最后一个终止的子进程的状态。$CHILD_STATUS的别名。
$: 通过加载或要求加载程序和二进制模块的路径。$LOAD_PATH的别名。
$FILENAME 当前从<读取的输入文件的名称,与<.文件名相同。
$stderr 当前的标准错误输出。
$stdin 当前的标准输入。
$stdout 当前的标准输出。
$= 区分大小写的标志,默认为nil。
$* 程序的命令行参数,也称为ARGV.ARGV的别名。
$” 数组中包含了由require加载的模块名称,是$LOAD_FEATURES的别名。

例子

# Ruby program to illustrate the
# use of pre-defined Variables
  
# Using '0' To know about the 
# script name 
puts "Script_name: ",0;   
  
# Using ' #{}' to know about the total
# number of process in the script
puts "Total number of process in this script: #{}"
  
# Using ; as default separator 
# for String#split.
a = "1,2,3,4,5,6,7"; = ","
p a.split       
  
# Pattern matching
"Welcome to GeeksforGeeks Portal!" =~ /Geeks/
  
# use to print the string to the 
# left of the last pattern match
p `
  
# use to print the string matched 
# by the last pattern match
p&
  
# use to print the string to the 
# right of the last pattern match
p $'

输出

Script_name: 
/var/www/service/usercode/969513068/source.rb
Total number of process in this script: 3950
["1", "2", "3", "4", "5", "6", "7"]
"Welcome to "
"Geeks"
"forGeeks Portal!"

Ruby预定义常量

Ruby包含许多预定义的常量。预定义常量的列表如下所示。

常量名称 说明
TRUE 相当于真。
FALSE 相当于false。
NIL 相当于nil。
STDIN 标准输入,默认值为$stdin。
STDOUT 标准输出,默认值为$stdout。
STDERR 标准输出错误,默认值为$stderr。
RUBY_VERSION 一个字符串,显示Ruby解释器的版本。
RUBY_PLATFORM 一个字符串,显示 Ruby 解释器的平台。
Ruby_release_date 一个字符串,显示Ruby解释器的发布日期。
DATA 程序的文件对象,正好指向END之后。如果程序中不存在END,则不定义。
ARGV 一个数组,存放传递给程序的命令行参数。$*的别名。
ARGF 一个对象,给出对作为命令行参数传递的文件的虚拟连接的访问。$<的别名。
ENV 这是一个类似哈希值的对象,包含当前的环境变量。

注意: 建议使用true、false和nil,因为TRUE、FALSE和NIL是向后兼容的。

例子

# Ruby program to illustrate 
# pre-defined Constants
  
# To know about Ruby Version
a = RUBY_VERSION
puts "Current Version: #{a}"         
   
# To Know about Ruby Platform
b = RUBY_PLATFORM
puts "Platform of Ruby: #{b}"        
  
# To know about Ruby Release Date
c = RUBY_RELEASE_DATE
puts "Release date of Ruby: #{c}"    

输出

Current Version: 2.3.1
Platform of Ruby: x86_64-linux-gnu
Release date of Ruby: 2016-04-26

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程