携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
一、Ruby 基本语法概述
关键字、运算符和标识符组成一门编程语言的基本定义,而数据的展现、运算以及流程控制规则是算法实现的基础。
Ruby 是一门面向对象语言,Ruby 中一切皆对象。
Ruby 是基于行的语言,遇到换行就意味语句的结束。也可以使用分号来分割同一行中的多条语句,在行尾加一个反斜杠表示要延续到下一行。
Ruby 中没有主程序,代码总是从上往下执行。在比较复杂的程序中通常一开始会引入其他模块,然后就是各种类和模块的定义,最后再执行主要操作代码。
二、面向对象
Ruby 是纯面向对象语言,Ruby 中一切皆对象。代码中操作的每个变量或者类型都是对象,操作结果也是对象。
对象是编写代码来解决现实中的问题时要研究的任何事物,从数字到任何事物都可以看做是对象,对象不仅可以表示具体的事物,还可以表示抽象规则、计划后者事件。
对象具有状态,一个对象用数据值来表示它的状态或者属性,对象还有操作(方法),用于改变对象的状态,具有相同或者相似性质的对象的抽象就是类,比如一辆红旗汽车就可以看做一个具体的对象(object),启停和泊车是对象的操作(方法),车的颜色价格是对象的属性,具有类似的功能的物体都可以成为类,既汽车类。
有了类就可以创建类的实例,类的实例既对象,表示具体的事物。
调用对象的操作方法或者对象与对象之间的沟通是通过对象发送消息来实现的,消息通常包含操作方法的名称,以及一些参数。
面向对象提供了封装、继承和多态的功能支持
- 封装:表示将类的方法和属性包装成一个整体,实现一个独立的功能模块。
- 继承:表示一种重复使用相同代码的方法,可以在已有类的基础上定义新的类,比如在汽车类的基础上创建一个红旗汽车类。
- 多态:表示不同的对象对不同的消息做出不同的响应的能力,比如有的汽车启动之后没有会有声浪,有的会有发动机声音,有的却没有声音。
在命令行终端中输入 irb,进入 Ruby 交互模式
Ruby 中一切皆对象,不管是字符串还是数字都是对象,都有实例方法可以调用,并且通过 .class 还可以输出所属的类型。
三、Ruby 关键字、标识符和注释
关键字
Ruby 中的关键字也称为保留字,就是 Ruby 语言中的有着特定意义和用处的一些字符,不能用于变量的名字、自定义方法的名字或者其他用户,Ruby 中的关键字很少。
| 类别 | 关键字 |
|---|---|
| 模块定义 | module |
| 类定义 | class |
| 方法定义 | def, undef |
| 检查类型 | defined? |
| 条件语句 | if, then, else, elsif, case, when, unless |
| 循环语句 | for, in, while, until, next, break, do, redo, retry, yield |
| 逻辑判断 | and, or, not |
| 逻辑和空值 | true, false, nil |
| 异常处理 | rescue, ensure |
| 对象引用 | super, self |
| 块的起始 | begin/end |
| 嵌入模块 | BEGIN/END |
| 文件相关 | __FILE__, __LINE__ |
| 方法返回 | return |
| 别名 | alias |
Ruby 中的 nil 关键字和其他语言中的 null 关键字很像,表示类似空集的概念,但是 Ruby 在逻辑判断的过程中,只有 nil 和 false 表示假,其他的所有的表达式都为真。
标识符
Ruby 的标识符或者名字用来指向常量、变量、方法、类和模块,标识符的首字母来辅助确定标识符所执行的内容的区域。基本规则如下:
- 局部变量以小写字母或者下划线开头
- 全局变量以美元符号
$开头 - 实例变量以
@开头 - 类变量以
@@开头 - 常量或者类名以大写字母开头
注释
Ruby 中的注释是以 # 开头,直到行结束
# 输出 Hello World 字符串
puts "Hello World"
在 Ruby 中 =begin 和 =end 两行中的代码会被解释器视为内嵌文档,内嵌文档和注释一样会被解释器忽略而不进行任何处理
=begin
这里可以写类和模块的大段说明文档
=end