原文地址
Predefined Variables
翻译了一部分。
下列内容讨论的是Ruby解析器中预定义的变量,在这些讨论中有一些标示需要预先做一下说明。
- [r/o]表示这个变量是只读的,如果说程序代码中试图修改这些只读变量则解析器会抛出错误。
- [thread]表示这个变量是一个线程内的变量。
由于历史原因,Ruby中的很多全局变量沿袭自脚本语言Perl。这些全局变量看起来像动画片任务Snoopy的口头禅,例如 $_ , $! , $& 等等。Ruby语言的设计者为了方便使用者记忆和使用这些变量,也为这些变量定义了很多全英文标示的有描述意义的变量(见下表)。
- $* $ARGV
- $? $CHILD_STATUS
- $< $DEFAULT_INPUT
- $> $DEFAULT_OUTPUT
- $! $ERROR_INFO
- $@ $ERROR_POSITION
- $; $FIELD_SEPARATOR
- $; $FS
- $= $IGNORECASE
- $. $INPUT_LINE_NUMBER
- $. $NR
- $/ $INPUT_RECORD_SEPARATOR
- $/ $RS
- $~ $LAST_MATCH_INFO
- $+ $LAST_PAREN_MATCH
- $_ $LAST_READ_LINE
- $" $LOADED_FEATURES
- $& $MATCH
- $, $OFS
- $\ $ORS
- $\ $OUTPUT_RECORD_SEPARATOR
- $, $OUTPUT_FIELD_SEPARATOR
- $$ $PID
- $' $POSTMATCH
- $` $PREMATCH
- $$ $PROCESS_ID
- $0 $PROGRAM_NAME
在下面的描述中,Shell变量的描述列表 数据组织顺序为 变量名称 指向的数据类型 具体描述
异常信息
- $! Exception 最近一次抛出(上一次传递到raise)的异常对象 [thread]
- $@ Array 最后一次抛出异常的异常堆栈表.详情参见Kernel#caller [thread]
模式匹配变量
当正则表达式运算匹配不成功时,以下变量除了$=都被赋值为nil
以下都是指:最后一个本作用域内的被成功模式匹配
- $= Object 只要不为nil/false,则后面的模式匹配(正则表达式、Hash、字符串比较)都忽略大小写
- $1 to $9 String The contents of successive groups matched in the last successful pattern match. In "cat" =~/(c|a)(t|z)/, $1 will be set to “a” and $2 to “t”. This variable is local to the current scope. [r/o, thread]
- $~ MatchData An object that encapsulates the results of a successful pattern match. The variables $&, $`, $', and $1 to $9 are all derived from $~. Assigning to $~ changes the values of these derived variables. This variable is local to the current scope. [thread]
分享到:
相关推荐
文档提到了一些关键内容的目录结构,例如运行 Ruby 解释器、使用 Unix/Linux 系统中的 Shebang 行、在 Windows 上关联文件类型、Ruby 的保留字、运算符、注释、数字、变量、符号、预定义变量、伪变量、全局常量、...
Ruby标准库非常丰富,包含了大量预定义的模块和类,涵盖了网络通信、文件处理、文本处理、日期和时间等多个领域。此外,Ruby还有大量的第三方库,如Rails(一个流行的Web开发框架)和Sinatra(轻量级Web框架),它们...
例如,`File`类提供了一系列用于文件操作的方法,`STDIN`, `STDOUT`, `STDERR`是标准输入、输出和错误流的预定义对象。 Ruby on Rails是Ruby的一个著名框架,用于构建Web应用。它遵循MVC(模型-视图-控制器)架构...
- **预定义全局变量**:列出并解释了Ruby环境中预定义的一些全局变量,如`$!`、`$>`等。 - **正则表达式**:提供了正则表达式的构建规则及常用方法,帮助处理文本匹配与搜索问题。 ##### 3. 条件语句、方法使用、类...
RDoc的主要功能包括解析Ruby源代码中的特殊注释,这些注释通常以三个或四个星号(`* * *`或`****`)或双下划线(`__`)开始,用于标记类、方法、变量等。RDoc能够识别这些特殊的注释格式,并将它们转换为HTML或...
本篇文档将详细介绍Ruby速查手册中提到的关键知识点,包括预定义变量、保留字、类型、表达式、模块/类定义以及运算符和正则表达式的使用方法。 #### 预定义变量 Ruby提供了一系列预定义变量来帮助开发者在编程过程...
Predefined Variables(预定义变量)** - Ruby中有一系列预定义的变量,用于特定的用途。例如`$!`表示最后发生的错误,`$>`表示当前命令执行者的权限。 **2. Pseudovariables(伪变量)** - 这些变量的行为类似...
6. 标准库:Ruby的标准库包含大量预定义的模块和类,涵盖了网络通信、文件操作、日期时间处理等多个领域。 7. 社区支持:Ruby拥有活跃的开发者社区,如Ruby on Rails框架的流行,带动了大量高质量的开源项目和工具...
- **定义**:应用程序框架提供了一个结构化的方法来开发应用,通常包括一组预定义的组件和服务。 - **Ruby on Rails**:这是最著名的Ruby框架之一,遵循MVC(模型-视图-控制器)模式,简化了Web应用程序的开发过程。...
- `RUBY_VERSION`是预定义常量,表示当前Ruby解释器的版本号。 **脚本编写:** - **shebang:** 在Unix系统中,脚本的第一行通常包含shebang(`#!/usr/bin/ruby`),指定解释器路径。 - **注释:** 使用`#`字符来...
将密钥存储在一个安全的地方,如环境变量中,避免硬编码在代码里: ```ruby api_key = ENV['YUNPIAN_API_KEY'] ``` 然后,创建一个YunPianSMS的客户端实例,使用这个API密钥初始化: ```ruby client = YunPianSMS...
布尔值用于表示逻辑真和逻辑假,Ruby中有两个预定义的布尔值:`true` 和 `false`。 - **布尔操作**:支持逻辑与(`&&`)、逻辑或(`||`)、逻辑非(`!`)等运算。 #### Nil `nil` 是一种特殊类型的对象,表示没有任何值...
安装完成后,Ruby的命令行工具(如`ruby`, `gem`)将被添加到系统的PATH环境变量中,这样你就可以在任何地方调用它们。 接下来,我们关注Sass的安装。Sass是CSS的扩展,它引入了变量、嵌套规则、混合、函数等特性,...
- **丰富的样式**:`Pygments` 提供多种预定义的样式表,可以改变颜色方案和字体样式,以适应不同的环境和偏好。 - **自定义扩展**:如果需要处理未被内置支持的语言,可以通过编写自定义的语法定义来扩展 `Pygments...
Ruby 的标准库是一个庞大的集合,它包含了各种预定义的模块、类和方法,涵盖了网络通信、文件操作、文本处理、日期时间等多个领域。这些类库无需额外安装,可以直接在 Ruby 环境中使用,极大地简化了开发工作。 二...
10. **标准库和Gem**:Ruby有一个丰富的标准库,提供了大量预定义的模块和类。此外,Ruby的生态系统中,Gem是扩展和分享代码的主要方式,可以通过`gem install`命令安装。 在"simple-ruby-app-master"这个项目中,...
3. **Flutter Widget**:掌握Material Design原则,熟悉各种预定义的Widgets(如TextField、Button、ListView等)以及如何组合它们来创建复杂的UI。 4. **状态管理**:了解Flutter中的状态管理方法,如Provider、...
假设templates是将模板名称哈希映射到内容和预定义变量,以下代码演示了Liquor::Manager的用法: manager = Liquor :: Manager . new templates . each do | name , ( body , predefined ) | if manager . ...
记得在安装后将Vagrant的可执行文件路径添加到系统的PATH环境变量中,以便在任何目录下都可以通过命令行运行Vagrant命令。 总的来说,Vagrant是一个强大的工具,它简化了虚拟机的管理和部署,促进了团队协作,确保...