首页 > 代码库 > Ruby学习笔记
Ruby学习笔记
1、单行注释用:#
2、多行注释用:=begin ... =end
3、语句分隔用;号
4、空格在省略()的地方代替()号
5、方法定义用:def undef
6、检查类型用:defined?
7、变量:全局变量用$,实例变量用@(后面不能直接跟数字),类变量用@@
8、输出:puts(每一个变量输出都加一个换行符),print(不换行),printf(按格式输出参数,如printf "Number: %4.3f, String %s")
9、输入:gets用来从键盘或者从文件读入一行数据
10、区间:1..3 =>(1,2,3) 1...3=>(1,2)
11、eql?:比较两个对象值和类型是否相等(如:a=1;b=1.0;a.eql?(b); #false);
equal?:比较两个对象内存地址是否相等(如:a=1.0;b=1.0;a.equal?(b); #false c=a;c.equal?(a); #true)
12、<=>:比较两个数大小,大、等、小分别返回1,0,-1(2<=>3; #-1 [6]<=>[5,4];#1)
13、===:右边对象是否在左边区间内(puts (1..4) ===3.5; #true)
14、for ... in 循环:
c = ‘a‘ for i in 1..5 if i == 2 and c==‘a‘ c = ‘b‘ #break 跳出当层循环 1a #next 忽略本次循环剩余部分,开始下一次循环 1a3b4b5b #redo 重新循环,从本次开始 1a2b3b4b5b #retry 重头开始循环体ruby1.9以后只支持在rescue中使用 end print i,c end
15、times,upto,downto,each,step:
#执行{}中代码次数
2.times{print "test"} #testtest #具有顺序的排列可以使用upto或者downto进行遍历 1.upto(9){|i| print i if i<5} #1234 9.downto(1){|i| print i if i<5} #4321 #步长相同的递增循环可以使用step 1.step(10,3){ |i| print i} #14710
16、对象
# 运行结果My name is yangfan,age is18,address is ABC class Person #初始化方法 def initialize(name,age = 18) @name = name @age = age @address = "China" end #talk方法 def talk puts "My name is " + @name + ",age is"+@age.to_s+ ",address is "+@address end #类似java中的set方法 attr_writer:address =begin def address = (vale) return @address = value end =end #get方法 attr_reader:address =begin def address return @address end =end end personA = Person.new("yangfan") personA.address = "ABC" personA.talk
17、继承 用"<"号:
#Studnet 继承 Person类 #输出I am a Student ,My name is yangfan,age is22,address is China class Student < Person #重写talk方法 def talk puts "I am a Student ,My name is " + @name + ",age is"+@age.to_s+ ",address is "+@address end end studentA = Student.new("yangfan",22) studentA.talk
18、访问控制:例如private :methodName
19、模块 module,使用module用include
20、加载其他的.rb文件,使用require和load。如require "test"/ load "test.rb"
用require和load加载文件,用include和extend加载模块。
require一般加载库文件,load加载配置文件。
require加载文件一次,load加载文件多次。