Ruby全局域变量是在整个应用中都可以访问到的,包括:$/ 、$\ 、$, 、$; 、$* 、$$ 、$:等等。
一、$/
输入记录分隔符。默认值为"\n"。
irb(main):076:0> $/ #初始的输入分割符
=> "\n"
irb(main):077:0> gets
=> "\n"
irb(main):078:0> "test"
#输入回车之后,默认插入"\n",输入结束
=> "test"
irb(main):079:0> $/="@"
#修改输入符为"@"
=> "@"
irb(main):080:0> gets
#输入回车之后没有结束读取进程,直到输入"@"之后结束
test
@
=> "test\n@"
二、$\
输出记录分隔符。print会在最后输出该字符串。 默认值为nil,此时不会输出任何字符。
irb(main):082:0> print "abc"
abc=> nil
irb(main):083:0> $\="@"
=> "@"
irb(main):084:0> print "abc"
abc@=> nil
三、$,
默认的切分字符。若Array.join中省略了参数时或在print的各个参数间将会输出它。 默认值为 nil ,等同于空字符串。
irb(main):087:0> ["a","b","c"].join
=> "abc"
irb(main):088:0> $,=","
#修改切分字符为","
=> ","
irb(main):089:0> ["a","b","c"].join #输出结果改变
=> "a,b,c"
四、$;
当String#split中省略参数时的切分字符。默认值为nil,此时将进行特殊的分割。
irb(main):090:0> $;
=> nil
irb(main):091:0> "abc".split
#默认的切分字符情况下,把整个字符当成一个元素
=> ["abc"]
irb(main):092:0> $;="b"
=> "b"
irb(main):093:0> "abc".split
#以"b"为切分字符情况下,把整个字符当成两个元素
=> ["a", "c"]
五、$*
传递给Ruby脚本的参数,ARGV的别名。
六、$$
当前运行中的Ruby进程的pid。
irb(main):094:0> $$
=> 5167
七、$:
包含一个数组,其内容是load或require加载文件时用的搜索目录列表。
irb(main):095:0> $:
=> ["/Users/gaohf/NetBeansProjects/RailsApplication1/app/controllers", "/Users/gaohf/NetBeansProjects/RailsApplication1/app/helpers", "/Users/gaohf/NetBeansProjects/RailsApplication1/app/models", "/Users/gaohf/NetBeansProjects/RailsApplication1/app/views", "/Users/gaohf/NetBeansProjects/RailsApplication1/config", "/Users/gaohf/NetBeansProjects/RailsApplication1/db", "/Users/gaohf/NetBeansProjects/RailsApplication1/lib", "/Users/gaohf/NetBeansProjects/RailsApplication1/log", "/Users/gaohf/NetBeansProjects/RailsApplication1/public", "/Users/gaohf/NetBeansProjects/RailsApplication1/test", "/Users/gaohf/NetBeansProjects/RailsApplication1/script", "/Users/gaohf/NetBeansProjects/RailsApplication1/doc", "/Users/gaohf/NetBeansProjects/RailsApplication1/vendor", "/Users/gaohf/NetBeansProjects/RailsApplication1/test", "/Library/Ruby/Site/1.8", "/Library/Ruby/Site/1.8/powerpc-darwin10.0", "/Library/Ruby/Site/1.8/universal-darwin10.0", "/Library/Ruby/Site", "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8", "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin10.0", "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby", "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8", "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin10.0", "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0", "."]
分享到:
相关推荐
ruby> $foo nil ruby> $foo = 5 5 ruby> $foo 5 应谨慎使用全局变量.由于在任何地方都可以被写因此他们相当危险.滥用全局变量会导致很难隔离臭虫;同时也视为程序的设计未经严格考虑.当你发现必须要使用全局...
本文将深入探讨Ruby语言中的类变量、全局变量、实例变量,以及多态的概念,并结合Ruby编码规范来阐述如何有效地编写代码。 一、类变量 类变量在Ruby中以`@@`前缀表示,它们是属于类或模块的共享变量,不会被类的...
本文将详细介绍 Ruby 中的五种主要变量类型:普通变量、全局变量、实例变量、类变量以及常量,并通过示例代码加深理解。 #### 二、Ruby中的变量类型详解 ##### 1. 普通变量 (Variable) - **定义与使用**: - 普通...
Ruby 中充满了一系列的隐藏变量,我们可以从这些预定义的全局变量中获取一些有意思的信息。 全局进程变量 $$ 表示当前运行的 ruby 进程。 代码如下:>> $$=> 17170我们可以从当前进程杀死它自己 代码如下:>> `kill -9...
Ruby中的变量有几种形式,分别是局部变量、实例变量、类变量、全局变量,对于初学者来说,常常容易搞混,尤其像本人这种做java的,理解起来还是头痛,经过仔细辨别学习,将这几种变量的差异及使用场景总结如下: ...
### Ruby 变量详解 ...然而,需要注意的是,尽管 Ruby 提供了全局变量这样的特性,但在实际开发中应避免过度使用,以减少潜在的问题。总的来说,掌握这些变量的概念和用法对于编写高质量的 Ruby 代码至关重要。
Ruby的全局变量: 全局变量以$开头。未初始化的全局变量的值是零,并使用-w选项产生警告。 全局变量的赋值会改变全局状态。这是不推荐使用全局变量。他们使得程序的含义模糊。 下面是一个例子显示使用全局变量。 #!...
Ruby支持四种基本变量:局部变量、实例变量、类变量和全局变量,它们分别以小写字母、@、@@和$开头。数据类型则包括字符串、数字、布尔值、数组、哈希等。控制结构包括条件语句(如if/else,case)和循环(如while、...
变量在Ruby中有四种类型:局部变量(以小写字母或下划线开头)、实例变量(以`@`开头)、类变量(以`@@`开头)和全局变量(以`$`开头)。数据类型包括字符串、数字、布尔值、数组、哈希等。控制结构包括条件语句(如...
Sass是一种强大的css扩展语言(css本身并不是一门语言),它允许你使用变量、嵌套规则、mixins、导入等css没有但开发语言(如Java、C#、Ruby等)有的一些特性,并且完全兼容CSS语法。Sass有助于保持大型样式表结构...
- 变量:Ruby支持五种变量,包括局部变量(`local`)、实例变量(`instance`)、类变量(`class`)、全局变量(`global`)和常量(`constant`)。它们各自有不同的命名规则和作用域。 - 数据类型:Ruby是动态类型...
1. **基础语法**:Ruby的基本数据类型,如整型、浮点型、字符串、数组、哈希等,以及变量的使用,如局部变量、实例变量和全局变量。 2. **控制结构**:包括条件语句(如if/else,case)和循环(如for,while,until...
Ruby也支持变量(局部变量、实例变量、类变量和全局变量),以及常量。 2. **面向对象编程**:Ruby是彻头彻尾的面向对象语言,一切皆对象。每个变量都是一个对象,具有属性(或称为实例变量)和行为(方法)。Ruby...
Ruby 全局变量 全局变量以 $ 开头。未初始化的全局变量的值为 nil,在使用 -w 选项后,会产生警告。 给全局变量赋值会改变全局状态,所以不建议使用全局变量。 下面的实例显示了全局变量的用法。 #!/us
1. **基础语法**:Ruby的基础语法包括变量(本地变量、实例变量、类变量和全局变量)、常量、运算符、流程控制(条件语句、循环语句)以及函数定义。 2. **类与对象**:Ruby是面向对象的语言,所有一切都是对象。...
- **标识名和变量作用域**:Ruby中的变量根据作用域可分为局部变量、实例变量、类变量和全局变量。 - **数据类型**:Ruby支持多种内置的数据类型,如整型、浮点型、字符串、数组、哈希等。 - **赋值和条件运算符**:...
用全局变量扩展Ruby I18n gem。 全局变量可用于每个转换中的插值,而无需在对I18n.translate的调用中显式指定它们。 可以通过I18n.config.globals访问变量。 安装 将此行添加到您的应用程序的Gemfile中: gem 'i18...
- **全局变量**(Global Variables):以`$`开头,其作用域在整个程序中,如`$debug = true`。 - **常量**(Constants):以大写字母开头,表示不变的值,如`PI = 3.14`,但实际并非完全不可变。 2. 变量规则...
在Ruby中,变量按照作用域和使用方式可以分为五种类型:全局变量、实例变量、类变量、局部变量和常量。 全局变量 全局变量是作用域最广的一种变量,在Ruby中,全局变量以美元符号($)开头。全局变量可以被程序中的...
5. **GIL(全局解释器锁)**:虽然Ruby的多线程模型受到全局解释器锁的限制,意味着在单个CPU核心上,同一时刻只能有一个线程执行Ruby代码,但仍然可以在IO密集型任务中利用多核资源。 6. **标准库和Gem**:Ruby的...