Variable
Ruby 中有六种类型的变量
- 局部变量 (local variable)
- 以英文小写字母或
_
开头
- 以英文小写字母或
- 全局变量 (global variable)
- 以
$
开头 - 作用域在整个程序中,即使运用在不同文件里
- 以
- 实例变量 (instance variable)
- 以
@
开头
- 以
- 类变量 (class variable)
- 以
@@
开头
- 以
- 伪变量 (pseudo variable)
- 伪变量是 ruby 预先定义好的代表某特定值的特殊变量,因此即使在程序中给伪变量赋值,它的值也不会改变
nil、true、false、self
等都是伪变量- 它们表面上虽然看着像变量,但实际行为又与变量有差别,因此称为伪变量
- 预定义变量
1 2 3 4 5 6 7 8 9 |
|
全局变量
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 |
|
常量
- 常量以大写英文字母开头
- ruby 的运行版本 (RUBY_VERSION)、运行平台 (RUBY_PLATFORM)、命令行参数数组 (ARGV) 等,都是 ruby 预定义好的常量
- 已赋值的常量重赋值会报警告
1 2 |
|
Operator
算数运算符
1 2 3 |
|
赋值运算符
1 2 3 4 5 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
逻辑运算符
- 表达式执行顺序从左到右
- 如逻辑表达式的真假已经可以确定,则不会再判断剩余的表达式 (短路)
- 最后一个表达式的值为整体逻辑表达式的值
1 2 3 |
|
1 2 3 4 5 |
|
1 2 3 4 5 |
|
比较运算符
1
|
|
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 |
|
条件运算符
1
|
|
范围运算符
- 用于表示数值范围,返回一个 Range 对象
X..Y
(范围是 X 到 Y)X...Y
(范围是 X 到 Y 的前一个元素)- 对 Range 对象使用 to_a 方法,会返回范围中从开始到结束的值
1 2 3 4 5 |
|
1 2 3 4 5 |
|
1
|
|
位运算
1
|
|
defined? 运算符
defined?
是一个特殊的运算符,以方法调用的形式来判断传递的表达式是否已定义- 它返回表达式的描述字符串,如果表达式未定义则返回 nil
点运算符与双冒号运算符
- 可通过在方法名称前加上类或模块名称和
.
来调用类或模块中的方法 - 可以使用类或模块名称和两个冒号
::
来引用类或模块中的常量- 如果
::
前的表达式为类或模块名称,则返回该类或模块内对应的常量值 - 如果
::
前未没有前缀表达式,则返回主 Object 类中对应的常量值
- 如果
运算符重载
不能重载的运算符: :: && || .. ... ?: not = and or
重载二元运算符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
重载一元运算符
- 一元运算符:
+ - ~ !
- 对应的方法名为:
+@ -@ ~@ !@
- 一元运算符都是没有参数的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
重载下标方法
- 数组散列中
obj[i]
和obj[i] = x
这样的方法,称为下标方法 - 对应的方法名为
[]
和[]=
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|