一 ruby是一门面向对象的语言
在建模过程中,分析要表达的事物,将他们归类,抽象为对象,同时赋予他们一定的成员变量和对应的方法,然后通过对象与对象之间的消息传递来进行相关数据的处理。
person=Person.new #默认的构造方法
person.name # person的成员变量
person.sayhello("hello") # 调用方法
二 ruby的命名规则
- 局部变量名 方法参数名 和方法名都必须以小写字母或者下划线作为开头,比如order . name等
- 实例变量名都要以@为前缀,比如@name 。
- 对于那些包含多个单词的方法名和变量名 ,ruby 通常习惯于用下划线来分割一个多次方法或者变量名中的单词
- 类名模块名和常量名都必须以大写字母作为首字母。对于包含多个单词的名称,都是使用大写字母而不是下划线来区分单词的开始。比如LineOrder
- rails 用符号(symbol)数据类型来标识事物,尤其是在命名方法参数和散列中查询内容的时候,可以把符号作为关键字。
三 方法
def say_hello(name)
result="hello,"+name
return result # 这句话是可选的,如果没有这句话,那么会返回本方法中的最后一个表达式的计算结果
end
#下面是调用这个方法
puts say_hello("daming") #puts 方法的作用是输出并换行
四 数据类型
- 字符串
单引号: 处理的时候就是我们的文本
双引号: 处理的时候会对文本进行转义 - 数组
a=[1,'fff',:a] #声明一个数组,数组中数据可以是任何数据类型
a[0] # 引用的时候通过索引来进行引用
a<<"addnum" #经常通过<< 将值追加到我们的接收器上。
- 散列:注意是花括号,然后是键值对进行存储
b={
:cell => "hello",
:name=>"daming"
}
b[:name] #=>daming
- 正则表达式
正则表达式可以指定字符的模式,使其可以和字符串相匹配。
在ruby中可以使用代码/pattern/ 或者%R{pattern}来生成正则表达式
line=~/python|java/ 判断line中是否含有python或者是java
五 逻辑方法
- 控制结构
首先是if语句
if count>10
puts "count>10"
elsif count<3
puts "count<3"
else
puts "3<=count<=10"
end
其次是while
while a<10
a=a+1
puts a
end
- 代码块和迭代器
代码块是由花括号或者do...end以及其内部代码构成的。
通常花括号只有单行语句的代码块,而do..end 用于多行语句的代码块
aninals=%w(ant bee dog elk) #构造数组
animals.each |a|
puts a
end
- 异常
方法和代码块都封装在begin和end之间,并用rescue子句来阻拦某种异常类。
begin
content="aaa"
rescue Exception =>e
puts e
end