首页 > 代码库 > 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加载文件多次。