引用
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基础教程(第5版)》是一本由日本知名编程专家高桥征义和后藤裕藏共同著作,经过Ruby之父松本行弘审校的编程入门指南。本书专注于教授Ruby 2.3版本的语法和核心概念,旨在帮助初学者轻松掌握这门强大的面向...
这个"Ruby基础语法视频教程1"涵盖了几个关键的概念,包括变量、变量规则以及表达式。以下是对这些主题的详细解释: 1. 变量(Variables): 在Ruby中,变量用于存储数据,并在程序的不同位置使用。Ruby有五种不同...
《Ruby基础教程(中文第4版)》是一本详尽介绍Ruby编程语言的权威指南,专为初学者和有一定编程经验的开发者设计。这本非扫描版的电子书以其清晰的排版和易于理解的内容,提供了学习Ruby 2.0版本的完美起点。Ruby是一...
排班精美,图文清晰。是市面上最适合初学者入门的 Ruby 教程,由 ruby 创始人亲自编写。...本书适合Ruby初学者学习参考, 有一定Ruby编程基础的读者若想再回顾一下Ruby的各知识点, 本书也能提供不少帮助。
### Ruby基础知识点详解 #### 一、Ruby简介与特点 Ruby是一种面向对象的脚本语言,具有简洁清晰的语法特点,使得开发效率大大提高。它既适合编写简单的脚本,也适用于构建复杂的Web应用。Ruby的设计哲学之一就是使...
在这个"Ruby基础"的主题中,我们将深入探讨Ruby语言的核心概念和特性,以及如何利用它进行高效的编程。 首先,我们要理解Ruby的基本语法。Ruby允许程序员使用自然语言般的表达方式编写代码,这使得代码更易于阅读和...
在初学者的旅程中,掌握Ruby基础知识至关重要。这个“ruby基础学习资料”压缩包很显然是为那些想要入门或者深入理解Ruby的人准备的。让我们详细探讨一下Ruby的基础知识。 1. **变量与数据类型**: Ruby支持五种...
《Ruby基础教程(中文第四版)》是深入学习Ruby语言的重要参考资料,由Ruby之父亲自审校并作序推荐,其权威性和准确性不言而喻。 该书涵盖了Ruby的基础知识,包括但不限于以下内容: 1. **变量和常量**:Ruby中的...
ruby基础教程(中文第四版)适合ruby初学者的必看教程。
`03182919948.doc`这个文件名可能是Ruby基础教程文档的章节编号或者版本号。文档内容可能涵盖以下主题: 1. Ruby安装:如何在不同操作系统上安装Ruby环境。 2. 变量和数据类型:介绍Ruby中的局部变量、实例变量、类...
### RUBY基础入门指南 #### 一、Ruby语言概述 **1.1 Ruby的历史** Ruby是一种面向对象的脚本语言,由日本人松本行弘(Yukihiro Matsumoto)于1995年开始开发。它结合了Perl的灵活性、Smalltalk的强大功能以及Ada...
在这个"Ruby基础语法使用方法全套讲解,风格讲解指南大全"中,我们将深入探讨Ruby的核心特性,包括变量、数据类型、控制结构、函数、类和模块等基础知识。 1. **变量**:Ruby中的变量分为五种类型:局部变量(以...
Ruby基础教程思维导图 Ruby基础教程思维导图
### Ruby基础知识-数据类型 #### 一、概览 在Ruby语言中,数据类型是程序设计的基本组成部分。本文档旨在详细介绍Ruby支持的各种基本数据类型及其使用方法,包括但不限于Number(数值)、String(字符串)、Ranges...
Ruby基础语法经典学习PPT教程. 网上关于ruby的PPT教程不太多,这个个人觉得还可以。
Ruby基础教程编程语言算法集 / Ruby
Ruby基础语法 Ruby变量与数据类型 Ruby控制结构 Ruby函数与方法 Ruby面向对象编程 Ruby模块与包 Ruby错误处理 Ruby文件与I/O操作 Ruby正则表达式 Ruby网络编程 Ruby数据库交互 Ruby测试框架 RubyWeb框架Rails入门 ...