ruby 变量_ruby专题

 Ruby有三类变量,一种常量和两种严格意义上的伪变量(pseudo-variables).变量和常量都没有类型.虽然无类型变量存在一定的缺点,但却有更多的优点并很好的符合Ruby快速简便(quick and easy)的哲学精神.

在大多数语言里,变量都必须指定其类型,可更改性(是不是个常数)和范围;由于类型的不存在,剩下的东西也可由变量名字很快确定(你马上会看见),在Ruby里我们不需要变量声明.

由首字母标识符将其分类:

$          全局变量  
@          实变量 
[a-z]      局部变量 
[A-Z]      常量 

唯一的例外是Ruby的伪变量:self,它永远指向当前正执行着的对象或未初始化变量的空值(meaningless value)nil.虽然这两者的命名都像是局部变量,但 self 却是个由解释器把持的全局变量,而 nil 实际上是个常量.既然只有这两种意外,他们并不会过多的干扰我们.

你并能向 self 或 nil 赋值.下面的例子中, main作为 self 的值,指向最高层的对象:

ruby> self
   main
ruby> nil
   nil   

 

时间: 2024-10-11 10:49:06

ruby 变量_ruby专题的相关文章

详细解析Ruby中的变量_ruby专题

 变量持有要使用的程序的数据的存储位置. Ruby支持的有五种类型的变量.在前面的章节中已经经历了一个简短描述以及这些变量.本章中介绍的这五种类型的变量. Ruby的全局变量: 全局变量以$开头.未初始化的全局变量的值是零,并使用-w选项产生警告. 全局变量的赋值会改变全局状态.这是不推荐使用全局变量.他们使得程序的含义模糊. 下面是一个例子显示使用全局变量. #!/usr/bin/ruby $global_variable = 10 class Class1 def print_global

实例讲解Ruby中的五种变量_ruby专题

Ruby 全局变量 全局变量以 $ 开头.未初始化的全局变量的值为 nil,在使用 -w 选项后,会产生警告. 给全局变量赋值会改变全局状态,所以不建议使用全局变量. 下面的实例显示了全局变量的用法. #!/usr/bin/ruby $global_variable = 10 class Class1 def print_global puts "Global variable in Class1 is #$global_variable" end end class Class2 d

解析 ruby 全局变量_ruby专题

 全局变量由$开头.它们可以在程序的任何位置访问到.在初始化前,全局变量有一个特殊的值 nil. ruby> $foo    nil ruby> $foo = 5    5 ruby> $foo    5   应谨慎使用全局变量.由于在任何地方都可以被写因此他们相当危险.滥用全局变量会导致很难隔离臭虫;同时也视为程序的设计未经严格考虑.当你发现必须要使用全局变量时,记得给它一个不会在其它地方一不小心就用到的描述性名字(像上面那样叫$foo可能不是一个好想法). 全局变量的好处是其可以被跟

什么是ruby和Ruby概述_ruby专题

Ruby是一种功能强大的面向对象的脚本语言,她可以使您方便快捷地进行面向对象编程.有时使用像Smalltalk.Eiffel或C++这样正式的面向对象语言来开发一些小项目显得有点"小题大作",而Ruby刚好可以满足这些面向对象编程的需求.当然了,您也可以使用Ruby进行普通的面向过程编程. Ruby的文本处理能力极强,与Perl不分伯仲.同时,Ruby的语法简单,还有异常处理以及迭代器等构造,使编程变得简单明了. 简而言之,您可以像使用Perl一样方便快捷地进行面向对象的开发.怎么样?

ruby 杂项_ruby专题

本章处理一些实际问题. 语句定界符 有些语言需要一定类型的标点,一般会是分号(;)来结束程序的每一语句.Ruby却采用了shell里的sh和csh的方便做法.一行中的多个语句由分号分开,但在行尾分号却并不需要;一个换行被看作一个分号.如果行以反斜杠(\)结束,随后的换行将忽略;这就允许你的单个逻辑行可以跨越数行. 注释 为什么写注释?虽然良好的代码可自成文档,但那种自以为别人能看懂并按你的方式很快去理解的想法是错误的.除此之外,你自己在离开数天后也会是另一个人;一段时间后我们忘了我们还未修补或增

ruby 模块_ruby专题

 Ruby的模块非常类似类,除了: 模块不可以有实体  模块不可以有子类  模块由module...end定义. 实际上...模块的'模块类'是'类的类'这个类的父类.搞懂了吗?不懂?让我们继续看下去吧. 模块有两种用法.其一是将相近的方法和实体放在一个相对集中的域里.Ruby标准包里的Math模块就扮演着这一角色: ruby> Math.sqrt(2)    1.41421 ruby> Math::PI    3.14159   ::操作符告诉 Ruby 解释器在哪里找常数的值(可以想像,M

Ruby教程之注释、变量声明以及数组操作_ruby专题

前两天在"博客园"上看了一篇文章"PHP基础教程",介绍PHP的,感觉挺好.D瓜哥在学Ruby,正好也写一篇"Ruby入门教程".需要说明一下,这篇文章适合有编程基础的,但是没接触过Ruby的新手.而且,这篇文章侧重入门,老鸟可以直接飞过.(如果能帮忙检查一下是否有描述不当,甚至错误的地方,也欢迎来踩两脚.D瓜哥感激不尽.) Ruby环境搭建 在Windows下,搭建Ruby环境,比较简单的方法是在"RubyInstaller"

Ruby基本的环境变量设置以及常用解释器命令介绍_ruby专题

Ruby 环境变量 Ruby 解释器使用下列环境变量来控制它的行为.ENV 对象包含了所有当前设置的环境变量列表. 对于 Unix,使用 env 命令来查看所有环境变量的列表. HOSTNAME=ip-72-167-112-17.ip.secureserver.net RUBYPATH=/usr/bin SHELL=/bin/bash TERM=xterm HISTSIZE=1000 SSH_CLIENT=122.169.131.179 1742 22 SSH_TTY=/dev/pts/1 US

简要解读Ruby面向对象编程中的作用域_ruby专题

作用域 Ruby中不具备嵌套作用域(即在内部作用域,可以看到外部作用域的)的特点,它的作用域是截然分开的,一旦进入一个新的作用域,原先的绑定会被替换为一组新的绑定. 程序会在三个地方关闭前一个作用域,同时打开一个新的作用域,它们是: 类定义class 模块定义 module 方法定义 def 上面三个关键字,每个关键字对应一个作用域门(进入),相应的end则对应离开这道门. 扁平化作用域 从一个作用域进入另一个作用域的时候,局部变量会立即失效,为了让局部变量持续有效,可以通过规避关键字的方式,使