ruby基础教程:ruby语言入门基础教程

  1.pr不自动换行puts会自动换行行不够写可以加""进行连接

  ruby 代码 puts 6/2
pr 6/1
puts 'hello world'
puts '我们都是'
'中国人' 


  运行结果:

  ruby 代码

3
6hello world
我们都是中国人 


  2.,eql?,equal? 区别

  值相等 eql?值相等类型相等 equal?值相等内存地址相等

a=1
b=1.0
c=1.0
d=1.0
e=c
puts(ab)#值相等
puts(a.eql?(b)) #值相等类型相等
puts(c.equal?(d))#值相等内存地址相等
puts(c.equal?(e)) 


  运行结果:

  ruby 代码

true
false
false
true 


  3. #<=>比较2个对象大小大于等于小于分别返回1,0,-1

  #=右边对象是否在左边区域里返回true或false

  ruby 代码

puts("abd" <=> "acd")
puts((0..5) = 10)
puts((0..5) = 3.2)


  运行结果:

-1
false
true


  4. 分支条件语句

x=3
x
when 1..2
pr "x=",x,",在1..2中"
when 4..9,0
pr "x=",x,",在4..9,0中"

pr "x=",x,",其它可能"
end
输出结果:
x=3,其它可能


  5.while和until

  注:

  A:ruby里串连接用是逗号(java里用是加号)如:

  puts("aaa","bbb")

  pr("aaa","bbb")

  分别输出为aaa换行bbb,aaabbb

  B:ruby里好像没有,所以a只能a=a+1

  ruby 代码

a=1
while( a < 10 )
pr(a," ")
a=a+1
end
b=1
until( b >= 10 )
pr(b," ")
b=b+1
end
输出结果为:
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9


  6. 几个介绍说明

  pr "aa" i < 2

  等价于

   i < 2

  pr "aa"

  end

  ruby 代码

3.times{pr "hi"}
1.upto(9){|i| pr i i<7>#|i|可以看成是个临时引用变量供后面使用
9.downto(1){|i| pr i i<7>
(1..9).each{|i| pr i i<7>
0.step(11,3){|i| pr i}
运行结果:
hihihi123456654321123456036


  1. 等价语句

  单引号里是什么就是什么会照着输出

  ruby 代码

a=5
b="hhhh"
pr("a is ",a,"
")
puts("a is #{a}")
puts('a is #{a}')
输出结果:
a is 5
a is 5
a is #{a}


  2. #ruby中如果个类里有2个同名思路方法总是后面个被执行

  ruby 代码

#ruby支持缺省参数
def sum(a,b=5)
a+b
end
puts sum(3,6) #输出结果为:9
puts sum(3)#输出结果为8
#ruby支持可变参数
def sum(*num)
numSum = 0
num.each{|i| numSum i}
numSum
end
puts sum #输出结果为0
puts sum(3,6)#输出结果为9
puts sum(1,2,3,4,5,6,7,8,9)#输出结果为45


  3. ruby中例子变量类变量,类思路方法

  例子变量:每个例子独享变量名用@开头

  类变量:所有例子共享变量名用@@开头类似java里变量但是在使用前必须要

  类思路方法:不需要通过例子对象来类思路方法定义方式: 类名.思路方法名如:

  ruby 代码

def StudentClass.student_count
puts "aaa"
end


  如果在外部个类里常量需要用到域作用符号"::"

  4.ruby里单例思路方法:给具体某个例子对象添加思路方法这个思路方法只属于这个例子对象这样思路方法叫单例思路方法

  定义单例思路方法首先要生成个例子对象其次要在思路方法名前加上个对象名和个点号(.)

  如:

  ruby 代码

Person
def talk
puts "hi!"
end
end
p1 = Person.
p2 = Person.
def p2.talk #定义单例思路方法p2.talk
puts "Here is p2."
end
def p2.laugh
puts "ha,ha,ha..."
end
p1.talk
p2.talk
p2.laugh
输出结果为:
hi!
Here is p2.
ha,ha,ha...


  5.访问控制

  ruby 代码

  #访问控制

  #public , protected, private

  #public 思路方法可以被定义它类和其子类访问可以被类和其子类例子对象

  #protected 思路方法可以被定义它类和其子类访问不能被类和其子类例子对象但是 可以在类和其子类中制定给例子对象

  #private 思路方法可以被定义它类和其子类访问,不能被类和其子类例子对象私有思路方法不能指定对象



#访问控制
#public , protected, private
#public 思路方法可以被定义它类和其子类访问可以被类和其子类例子对象
#protected 思路方法可以被定义它类和其子类访问不能被类和其子类例子对象但是 可以在类和其子类中制定给例子对象
#private 思路方法可以被定义它类和其子类访问,不能被类和其子类例子对象私有思路方法不能指定对象
Person
public
def talk
puts "public:talk"
end
def speak
"protected:speak"
end
def laugh
"private:laugh"
end
protected :speak
private :laugh
def useLaughTest(another)
puts another.laugh #这里私有思路方法不能指定对象
end
def useSpeakTest(another)
puts another.speak #这里可以,protected思路方法可以指定对象
end
end
Student < Person
def useLaugh
puts laugh
end
def useSpeak
puts speak
end
end
p1 = Person.
p1.talk
#p1.speak 例子对象不能访问protected思路方法
#p1.laugh 例子对象不能访问private思路方法
p2 = Student.
p2.useLaugh
p2.useSpeak  


  输出结果为:

  public:talk

  private:laugh

  protected:speak



Tags:  rubyonrails教程 ruby入门 ruby教程 ruby基础教程

延伸阅读

最新评论

发表评论