引用
if __FILE__ == $0
# TODO Generated stub
class Person
def initialize(name,age=18) #initialize是初始化方法,相当于java的构造器
@name=name
@age=age
@motherland="China"
end #初始化方法结束
def talk
puts "my name is "+@name+",age is "+@age.to_s #@age.to_s的含义是:将数@age转换为字符串
if @motherland =="China"
puts "I am a chinese."
else
puts "I am a foreigner."
end
end #talk方法结束
# attr_reader: 实例变量只读
# attr_writer: 实例变量可写
# attr_accessor: 变量可读可写
attr_writer:motherland
#attr_writer:motherland相当于def motherland=(value) return @motherland=value end
#attr_reader:motherland相当于def motherland return @motherland end
# attr_accessor:motherland
end #person类结束
#在Ruby中模块定义:module
# 类定义:class
# 方法定义:def undef
# 检查类型:defined?
p1=Person.new("hefeng",24)
p1.talk
p2=Person.new("Ben")
p2.motherland="ABC"
p2.talk
class Student <Person #用"<"表示Student类是Person类的子类
def talk
puts "I am a student.my name is "+@name+",age is "+@age.to_s
end #talk 方法结束
end
p3=Student.new("ChZh", 27);
p3.talk
p4=Student.new("Tom");
p4.talk
#常量全用大写的字母,用下划线分割单词.例如:MAX,ARRAY_LENGTH.
#类名和模块名用大写字母开头的单词组合而成.Eg:MyClass.Person
#变量和参数用小写字母开头的单词组合而成.Eg:name currentValue
#方法名全用小写的字母,用下划线分割单词.Eg:talk,is_prime?.在Ruby里,有时将"!"和"?"附于某些方法名的后面.
#惊叹号"!"暗示这个方法具有破坏性,有可能会改变传入的参数.
#"?"表示这个方法是一个布尔方法,只会返回true或false
end
#可变参数方法
def sum(*num)
numSum = 0
num.each{|i|numSum+=i}
return numSum
end
puts sum()
puts sum(3,6)
puts sum(1,2,3,4,5,6,7,8,9)
#Ruby中要使用域作用符::
# 全局变量用$开头
# 实例变量,变量名用@开头
# 变量名用@@开头
class StudentClass
#变量
@@count=0
def initialize(name)
@name = name
@@count+=1
end
def talk
puts"I am #@name,This class have #@@count students."
end
end
p1 = StudentClass.new("Student 1")
p2 = StudentClass.new("Student 2")
p3 = StudentClass.new("Student 3")
p4 = StudentClass.new("Student 4")
p1.talk
class StudentClass
#变量
@@count=0
#类方法
def initialize
@@count+=1
end
def StudentClass.student_count
puts"This class have #@@count students."
end
end
p1 = StudentClass.new
p2 = StudentClass.new
p3 = StudentClass.new
p4 = StudentClass.new
StudentClass.student_count
#单例方法也叫单件方法.定义单例方法,首先要生成一个实例对象,其次要在方法名前加上对象名和一个点号"."
class Ps
def talk
puts "Hi!"
end
end
p1 = Ps.new
B2 = Ps.new
def B2.talk
puts "Here is SB"
end
p1.talk
B2.talk
#模块:在程序中,相关的,不相关的代码的组合,叫作模块 模块名.方法名(参数)
arr=[3,4,5,6,7,8,9]
puts arr[0]
puts arr.first
puts arr[arr.length-1]
puts arr[arr.size-1]
puts arr[-2]
#Ruby的数组大小是动态,
#数组的索引从0开始,一直到数组的长度减1;负数表示从数组末尾开始的索引;用一对数字索引数组,
#第一个数字表示开始位置,第二个数字表示从开始位置起的元素数目
arr=[4,5,6]
#打印数组集合
print arr.join(","),"\n"
#把4号索引位置元素赋值为"m"
arr[4]="m"
print arr.join(","),"\n"
#打印3号索引
print arr[3],"\n" #3号索引为空!!!
arr.delete_at(3) #删除3号索引位置元素
print arr.join(","),"\n"
arr[2]=["a","b","c"] #把2号索引位置元素赋值为["a","b","c"]
arr[0..1]=[7,"h","b"] #把0..1号元素替换为7,"h","b"
arr.push("b") #加入元素"b"
arr.delete(["a","b","c"])#删除元素["a","b","c"]
arr.delete("b")#删除所有元素"b"
arr.insert(3,"d")#在3号索引位置插入元素"d"
arr<<"f"<<2 #加入元素"f";加入元素2
arr.pop #删除尾元素
arr.shift #删除首元素
arr.clear #清空数组arr
if __FILE__ == $0
# TODO Generated stub
#数组运算
aaaa=["aa",4,5,"bb"]
bbbb=[4,1,3,2,5]
print aaaa*2, "\n"
print bbbb-aaaa ,"\n"
print aaaa | bbbb ,"\n"#并运算 aa 45 bb 132
print aaaa & bbbb ,"\n"#交运算45
print bbbb.sort ,"\n"#排序
print aaaa.reverse ,"\n"#倒置
#%q用来生成单引号字符串;%Q用来生成双引号字符串.%q或者%Q后面跟着的是分隔符.
str ="Hello,kaichuan, Welcome!"
puts str=~/a/
#匹配一个正则表达式用"=~"
#匹配一个正则表达式用"!~"
#块可以接收yield传来的参数
def do_something
yield #块
end
do_something do
(1..9).each{|i| print i if i<5}
puts
end
do_something do
3.times{print "Hi"}
puts
end
end
#数组迭代器
class Array
def one_by_one
for i in 0...size
yield(self[i])
end
puts
end
end
arr=[1,3,5,7]
arr.one_by_one{|k| print k, " ,"}
arr.one_by_one{|h| print h*h, " ,"}
if __FILE__ == $0
# TODO Generated stub
#求50内的素数
for i in 2..50
f=true
for p in 2...i
if i%p==0 #如果能整除
f=!f #那么这个数不是素数
break
end
end
print i," " if f #如果这个数保持起始假定,则打印
end
print "\n"
# times upto downto each step
3.times{print "Hi!"}
1.upto(9){|i|print i if i<7}
9.downto(1){|i| print i if i<7}
(1..9).each{|i|print i if i<7}
0.step(11,3){|i|print 1}
#在 ruby 中用begin/end rescue ensure raise 来处理异常,在ruby可以用在rescue中,
#可以只用rescue或是ensure,两者都使用时,rescue必须在ensure前
end
分享到:
相关推荐
排班精美,图文清晰。是市面上最适合初学者入门的 Ruby 教程,由 ruby 创始人亲自编写。...本书适合Ruby初学者学习参考, 有一定Ruby编程基础的读者若想再回顾一下Ruby的各知识点, 本书也能提供不少帮助。
Ruby基础教程.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
ruby-4-variables.mp4 ruby-5-variables-rules.mp4 ruby-6-expression.mp4
Ruby基础学习资料:Ruby介绍,环境配置,Ruby语法。
非扫描版,很不错的电子书,值得收藏!第四版支持ruby 2.0;
ruby基础教程(中文第四版)适合ruby初学者的必看教程。
ruby 基础 知识 有利于学好ruby
RUBY基础入门指南,RUBY基础入门指南,RUBY基础入门指南
本书为日本公认的最好的Ruby 入门教程。松本行弘亲自审校并作序推荐。本书支持最新的Ruby 2.0,也附带讲解了可运行于1.9版本的代码,事无巨细且通 俗易懂地讲解了编写程序时所需要的变量、常量、方法、类、流程控制等...
Ruby基础语法经典学习PPT教程. 网上关于ruby的PPT教程不太多,这个个人觉得还可以。
Ruby基础知识(linux上的安装步骤).doc
Ruby基础知识-数据类型.pdf
ruby基础教程doc版,方便打印。新手必备教程~
Ruby的基础教程,为学习RoR和想使用RPGMaker的人打好Ruby基础。
一本免费的在线书籍,旨在为您提供简洁,易学的Ruby学习指南。
比较适合ruby初学者,里面对ruby的基础知识的讲解。
图灵书籍包括ruby基础教程(中文第四版).pdf+代码的未来.pdf。
前言ix在开始编程之前,让我们先了解一下什么是 Ruby。Ruby 是面向对象语言Ruby 是一群热爱面向对象编程的程序员,为了实现最优秀的面向对象语言而设计、