脚 本 之 家 www.jb51.net
页面导航:  不限条件-->By
本地搜索:
 一个常量由大写字母开头.它应最多被赋值一次.在Ruby的当前版本中,常量的再赋值只会产生警告而不是错误(non-ANSI版的eval.rb不会报告这一警告)ruby>fluid=30   30ruby>fluid=31   31ruby>Solid=32   32ruby>Solid=33   (eval):1: warning: already initialized constant S...
http://www.jb51.net//article/12882.htm
 局部变量由小写字母或下划线(_)开头.局部变量不像全局和实变量一样在初始化前含nil值.ruby> $foo   nilruby> @foo   nilruby> fooERR: (eval):1: undefined local variable or method `foo' for main(Object)  对局部变量的第一次赋值做的很像一次声明.如果你指向一...
http://www.jb51.net//article/12881.htm
 一个实变量由@开头,它的范围限制在 self 对象内.两个不同的对象,即使属于同一个类,也可以拥有不同值的实变量.从对象外部来看,实变量不能改变甚至观察(比如, Ruby的实变量从来不是公用的),除非方法由程序员明确声明.像全局变量一样,实变量在初始前的值是nil.Ruby的实变量用不着声明.这暗含着对象的弹性结构.实际上,每个实变量都是在第一次出现时动态加入对象的.ruby> class InstTest    |   def set_foo(n...
http://www.jb51.net//article/12880.htm
 全局变量由$开头.它们可以在程序的任何位置访问到.在初始化前,全局变量有一个特殊的值 nil.ruby> $foo   nilruby> $foo = 5   5ruby> $foo   5  应谨慎使用全局变量.由于在任何地方都可以被写因此他们相当危险.滥用全局变量会导致很难隔离臭虫;同时也视为程序的设计未经严格考虑.当你发现必须要使用全局变量时,记得给它一个不会在其它地方一不小心就用到的描述性...
http://www.jb51.net//article/12879.htm
 Ruby有三类变量,一种常量和两种严格意义上的伪变量(pseudo-variables).变量和常量都没有类型.虽然无类型变量存在一定的缺点,但却有更多的优点并很好的符合Ruby快速简便(quick and easy)的哲学精神.在大多数语言里,变量都必须指定其类型,可更改性(是不是个常数)和范围;由于类型的不存在,剩下的东西也可由变量名字很快确定(你马上会看见),在Ruby里我们不需要变量声明.由首字母标识符将其分类:$          全局变量 &...
http://www.jb51.net//article/12878.htm
我们总是希望对未知事件分类.当它发生时,向其它方法传递一块作为参数的代码是最容易地解决方法,也就是说我们希望像处理数据一样处理代码.一个新的过程对象可以通过proc创建:ruby> quux = proc {    |   print "QUUXQUUXQUUX!!!\n"    | }   #<Proc:0x4017357c>  现在quux指向一个对象,像...
http://www.jb51.net//article/12877.htm
 Ruby的模块非常类似类,除了:模块不可以有实体 模块不可以有子类 模块由module...end定义.实际上...模块的'模块类'是'类的类'这个类的父类.搞懂了吗?不懂?让我们继续看下去吧.模块有两种用法.其一是将相近的方法和实体放在一个相对集中的域里.Ruby标准包里的Math模块就扮演着这一角色:ruby> Math.sqrt(2)   1.41421ruby> Math::PI   3.14159  ::操作符告诉 Ruby&nbs...
http://www.jb51.net//article/12876.htm
 实体的行为取决于其类,但很多时候我们知道一个特定的实体需要特定的行为.在很多语言里,我们必须陷入另外再定义一个类的麻烦里,即使它只是用来接着实体化一次.在Ruby里,我们可以赋予任何对象属于其自身的方法.ruby> class SingletonTest    |   def size    |     print "25\n"    |&...
http://www.jb51.net//article/12875.htm
面向对象是一个挺让人迷惑的措辞.叫一切东西都是面向对象会让别人觉得你很时髦. Ruby 声称自己是面向对象的脚本语言;但究竟什么才是"面向对象"? 我们已经有了各种各样的答案,但所有这些恐怕都归结于同一件事.与其快速地概括它,不如让我们先花点儿时间考虑一下传统的编程模式.传统意义上,一个编程问题从出现的各种数据,以及处理数据的过程(procedures)着手.在这一模式下,数据是呆板,被动和无用的;它完全的求助于那个体积庞大的,主动的,逻辑性的,全能的过程体.这一做法的问题在于程序是由程序员写的,而他们仅仅能在工作中记下为数不多的细节.而随着工程的加大,它的核心也...
http://www.jb51.net//article/12869.htm
迭代器并不是Ruby发明的.它广泛地运用于各种面向对象语言.在Lisp中也有,只是不这么叫罢了.尽管如此,迭代器的概念并不为许多人熟悉,因此我们将在此做较为详细的介绍.你知道,动词 iterate 的意思是做同一件事许多遍,因此,iterator就是用来将同一件事做许多次的东西.当我们写代码时,我们需要各种环境下的循环.在C里,我们用for或者while.比如,char *str;for (str = "abcdefg"; *str != '\0'; str++) { &nb...
http://www.jb51.net//article/12868.htm
这章我们将讨论更多的Ruby流程控制.case我们用case语句测试有次序的条件.正如我们所见的,这和C,Java的switch相当接近,但更强大.ruby> i=8ruby> case i    | when 1, 2..5    |   print "1..5\n"    | when 6..10    ...
http://www.jb51.net//article/12867.htm
共有:69/10,当前3/7页  [首页] [上一页] 1 2 3 4 5 6 7 [下一页]  [尾页] 转到: