文档介绍:Ruby语法基础
Ruby is an Object Oriented Language
Ruby是一门完全面向对象的语言, 你所操作的每件东西都是对象.
Ruby中的每件东西都具有它的类型(class), 这些东西是这个类型(class)的实例(instance), 所以可以这样理解: 对象(object)就是类的实例(class instance).
进阶: Ruby中每件东西都是对象, 所以ruby中的类型也是对象.
可以为类定义实例变量(instance variables, 对每个实例都是唯一的变量)和实例方法(instance methods, 用于访问实例变量).
如图, “.”号之前的为调用方法的实例, “.”号之后为调用的方法和参数.
进阶: 与Java的区别在于: 行为总是内建在对象内( (number)).
Ruby is an Object Oriented Language
Some Basic Ruby
简单的Ruby程序:
def say_hello(name)
result = “Hello, “+ name
end
# 开始调用
puts say_hello(“Jack”)
puts say_hello(“Will”)
只要每个语句放在单独的行上, 结尾处就不需要加分号.
注释以#开头, 在行尾结束.
不强制规定缩进
Some Basic Ruby
方法(method), 用关键字def来定义, 后接方法名和参数(参数的括号是可选的, 但是有ruby风格的约定), 用end结束.
变量不必声明, 当我们赋值给它时, 它便存在了.
puts: 输出其后的内容, 并后缀回车换行.
字符串”…”或者’…’: 使用双引号将比使用单引号有更多的处理, 比如转义字符.
DataStructure: Arrays and Hashes
Ruby的数组(Array)和散列表(Hash)是被索引的集合(indexed collection), 存储对象的集合, 通过键(key), 散列表支持任何类型的键.
Ruby的数组和散列表可以保存不同类型的对象.
a = [1, ‘cat’, ]
a[0] # 访问第一个元素
nil: 类似null, 表示没有任何东西的对象.
DataStructure: Arrays and Hashes
Ruby的散列表和数组类似, 但使用{…}, 每个元素需提供一个key和一个value.
如果访问未定义的键值对, 将返回nil.
Control Structure
if和unless:
if 条件满足则执行
…
elsif 条件满足则执行
…
else
…
end
unless 条件不满足则执行
…
else
…
end
Control Structure
while和until:
while 条件满足则循环
…
end
until 条件不满足则循环
…
end
Control Structure
进阶: for和case
for 循环变量 in 范围
…
end
case 条件表达式
when 满足条件1 then
…
when 满足条件2 then
…
…
else
…
end