摘要:=beginRuby中 使用Xml Markup 轻松的对XML文档操作,项目地址:http://builder.rubyforge.org/使用之前我们需要安装Builder xml markup前置条件您的机器已经安装了RubyGems(Windows平台的一步安装文件RubyRubyInstaller.exe(我机器是RubyInstaller-1.9.3-p194),安装完毕系统就自带RubyGems)Windows系统:在命令行输入:gem install builder 即可×××××××××
阅读全文
摘要:对应Ruby编程语言第五章#Ruby使用换行符、分号、then关键字对条件表达式(expression)和后续内容(code)进行分割#if条件式=beginifexpressioncodeend或者ifexpressionthencodeend上边第一个我们用的是换行符,第二个我们用的是关键字then=enda=if1==15endputsaa=if1==1then5endputsaa=if1==1;5endputsa#作为修饰符的if#codeifexpressiona=5if1==1putsa#unless条件式=begin#unlessconditionthencodeend或者unl
阅读全文
摘要:对应Ruby编程语言第三章=beginRuby包含了5个表示数字的内建类:NumericFloatIntegerFixnumBignum及标准库中的3个数值类:ComplexBigDecimalRationalNumeric|_______________________________________|||||IntegerFloatComplexBigDecimalRational|___________||FixnumBignumRuby中的所有数字对象都是Numeric类的示例,所有的整数都是Integer的实例,Bignum和Fixnum是透明转换的(如果一个Fixnum对象,其结果
阅读全文
摘要:对应Ruby编程语言第二章#coding:utf-8#Ruby1.9以上版本,如果一行代码的第一个非空白的字符是一个"句点",那么这一行将被作为上一行的延续animals=Array.new.push("dog").push("cow").sortputsanimals#FileStructure(文件结构)#如果Ruby程序包含"shebang"注释,则该注释必须是程序的第一行,这行注释是为了指示Unix/Linux操作系统如何执行该文件的#如果Ruby程序包含"coding"注释,那么如果没
阅读全文
摘要:对应Ruby编程语言第一章 #coding:utf-8#BlocksandIterators(代码块和迭代器)#timesanduptodownto是由Integer实现的迭代器#times{|i|block}:Iteratesblockinttimes,passinginvaluesfromzerotoint-1.puts"#times{|i|block}:"5.timesdo|i|printi,""print"\n"end3.times{print"WelcometoRuby,Jeriffe\n"}#upto(
阅读全文
摘要:假设您已经安装了Eclipse,那么只需按照如下步骤即可:Please copy the following Update Site URL to your clipboard and then follow the steps listed below to add this URL to yourAvailable Software Siteslist. Attempting to access this URL using your web browser will return an Access Denied error.http://download.aptana.com/stud
阅读全文
摘要:#E8.1-2.rb字符串操作#双引号括起来的字符串会有转义,例如:“\n”表示换行。还有一些其它的转义符号,比如制表符之类。str="thisisyoustring.\n"putsstr*2=beginresult:thisisyoustring.thisisyoustring.=end#单引号括起来的字符串并不会对字符串作任何解释str2='thisisyoustring.\n'putsstr2*2#thisisyoustring.\nthisisyoustring.\n=begin字符串内嵌表达式在双引号扩起来的字符串中,不仅可以使用各种转义符,而且可
阅读全文
摘要:#E8.1-1.rb=begin数组的索引从0开始,一直到数组的长度减去1;负数表示从数组末尾开始的索引;用一对数字来索引数组,第一个数字表示开始位置,第二数字表示从开始位置起的元素数目=endarr=[3,4,5,6,7,8,9]putsarr[0]#3putsarr.first#3putsarr[arr.length-1]#9putsarr[arr.size-1]#9putsarr.last#9putsarr[-1]#9putsarr[-2]#8printarr[1..3].join(","),"\n"#4,5,6printarr[-3,2],&qu
阅读全文
摘要:#E3.12-1.rb求50以内的素数$arr=[]#建立一个全局数组$arr$arr[0]=2defadd_prime(n)#定义方法将n以内的奇素数加入$arr3.step(n,2){|num|$arr<<numifis_prime?num}enddefis_prime?(number)#定义方法判断一个数是否是素数j=0#数组下标while$arr[j]*$arr[j]<=numberreturnfalseifnumber%$arr[j]==0j+=1endreturntrueendadd_prime(50)print$arr.join(","),&
阅读全文
摘要:=beginRuby使用一个约定来区别一个名字的用法:名字前面的第一个字符表明这个名字的用法。局部变量、方法参数和方法名称应该用一个小写字母开头或者用一个下划线开头;全局变量用美元符作为前缀$;实例变量用@开头;类变量用@@开头;与全局变量和实例变量不同,类变量在使用前必须要初始化;全局变量和实例变量如果没有初始化,其值为nil类名、模块名和常量应该用大写字母开头=end=beginRuby的条件运算符比Java更加复杂==:比较两个对象的值是否相等,返回true,falseeql?:比较两个对象的值、类型是否相等,返回true,falseequal?:比较两个对象在内存中地址是否相同,返回t
阅读全文
摘要:classPerson#initialize是初始化方法,相当于Java的构造器。参数age有一个缺省值18,#可以在任何方法内使用缺省参数,而不仅仅是initialize。如果有缺省参数,参数表必须以有缺省值的参数结束definitialize(name,age=18)@name=name@age=age@motherland="China"end#初始化方法结束deftalkputs"mynameis"+@name+",ageis"+@age.to_s#@age.to_s:将数@age转换为字符串。if@motherland==&
阅读全文
摘要:#Ruby语言中,定义方法时,不指定参数类型 ,而且Ruby又有缺省参数和可变参数,故Ruby语言,没有方法的重载 #缺省参数defsum(a,b=5)a+bendputs"defaultparameter:"putssum(3,6)#9putssum(3)#8#可变参数defsum(*num)result=0num.each{|item|result+=item}returnresultendputs"variableparameter"putssum()#0putssum(9)#9putssum(1,2,3,4,5,6)#21
阅读全文
摘要:#增强父类方法:super关键字classPersondeftalk(name)print"mynameis#{name}"endendclassStudent<Persondeftalk(name)superprint"andiamastudent."endendputs"Personclass:"p=Person.newp.talk("Jeriffe")#mynameisJeriffeputs"\nStudentclass:"s=Student.news.talk("Summ
阅读全文
摘要:#类变量和类方法;类变量,类方法在 Java/C# 里与之相对应的是 static变量,static方法classStudent@@count=0definitialize@@count+=1end#定义类方法要在方法名前加上类名和一个点号“.”defStudent.student_countputs"Thisclasshave#@@countstudents."endendp1=Student.newp2=Student.newStudent.student_count#Thisclasshave2students.p3=Student.newp4=Student.new
阅读全文
摘要:#单例方法:对象的实例方法,其只属于具体类实例对象#实例方法,属于类的每个实例对象。单例方法只出现在单个实例对象中classPersondeftalkputs"ThisisaPersonclass."endendp1=Person.newp2=Person.new#定义单例方法,首先要生成一个实例对象,其次,要在方法名前加上对象名和一个点号“.”defp2.talkputs"Thistalkmethodbelongstop2."enddefp2.laughputs"laughmethodbelongstop2."endp1.talk#
阅读全文
摘要:#Ruby的访问控制 public方法,可以被定义它的类和其子类访问,可以被类和子类的实例对象调用 protected方法,可以被定义它的类和其子类访问,不能被类和子类的实例对象直接调用,但是可以在类和子类中指定给实例对象 private方法,可以被定义它的类和其子类访问,私有方法不能指定对象。 classPersondefspeakputs"protected:speak."enddeflaughputs"private:laugh."endprotected:speakprivate:laughdefuseSpeak(another)another.
阅读全文
摘要:定义模块用module...end 。模块与类非常相似,但是: 模块不可以有实例对象; 模块不可以有子类。#Module(模块)moduleModule1defsqrt(num,rx=1,e=1e-10)num*=1.0(num-rx*rx).abs<e?rx:sqrt(num,(num/rx+rx)/2,e)endendputs"Moduledemo:"includeModule1putssqrt(456,7,0.01)#21.3541565188558#Module(模块)方法;模块方法提供了一个途径,在模块的外部访问模块内部方法,无须 include 模块。定义
阅读全文
摘要:require一般用来加载其它的类,如:#Ruby代码:require'dbi'require"rexml/document"但是上面加载的是标准类库里面的文件,当然也可以是已安装的gems文件,但是如果是自己在本地写的文件,就不能直接用require了,而应该这样:#E7.4-1.rbModule(模块)moduleModule1defsqrt(num,rx=1,e=1e-10)num*=1.0(num-rx*rx).abs<e?rx:sqrt(num,(num/rx+rx)/2,e)endend#E7.4-2.rbPerson类classPerso
阅读全文