Eric's Blog 时光荏苒,岁月如梭

Ruby 运算符

2018-09-12
Eric Wong

算术运算符

算数运算符,顾名思义,常见的加减乘除,还有取余等:

运算符 描述 实例
+ 加法 - 把运算符两边的操作数相加 a + b 将得到 30
- 减法 - 把左操作数减去右操作数 a - b 将得到 -10
* 乘法 - 把运算符两边的操作数相乘 a * b 将得到 200
/ 除法 - 把左操作数除以右操作数 b / a 将得到 2
% 求模 - 把左操作数除以右操作数,返回余数 b % a 将得到 0
** 指数 - 执行指数计算 a**b 将得到 10 的 20 次方
puts 1 + 2
puts 1 * 2
puts 2 - 1
puts 2 / 2
puts 11 % 3
puts 4**3

比较运算符

假设变量 a 的值为 10,变量 b 的值为 20,那么:

运算符 描述 实例
== 检查两个操作数的值是否相等,如果相等则条件为真。 (a == b) 不为真。
!= 检查两个操作数的值是否相等,如果不相等则条件为真。 (a != b) 为真。
> 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (a > b) 不为真。
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (a < b) 为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (a >= b) 不为真。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (a <= b) 为真。
<=> 联合比较运算符。如果第一个操作数等于第二个操作数则返回 0,如果第一个操作数大于第二个操作数则返回 1,如果第一个操作数小于第二个操作数则返回 -1。 (a <=> b) 返回 -1。
=== 用于测试 case 语句的 when 子句内的相等。 (1…10) === 5 返回 true。
.eql? 如果接收器和参数具有相同的类型和相等的值,则返回 true。 1 == 1.0 返回 true,但是 1.eql?(1.0) 返回 false。
equal? 如果接收器和参数具有相同的对象 id,则返回 true。 如果 aObj 是 bObj 的副本,那么 aObj == bObj 返回 true,a.equal?bObj 返回 false,但是 a.equal?aObj 返回 true。

赋值运算符

运算符 描述 实例
= 简单的赋值运算符,把右操作数的值赋给左操作数 c = a + b 将把 a + b 的值赋给 c
+= 加且赋值运算符,把右操作数加上左操作数的结果赋值给左操作数 c += a 相当于 c = c + a
-= 减且赋值运算符,把左操作数减去右操作数的结果赋值给左操作数 c -= a 相当于 c = c - a
*= 乘且赋值运算符,把右操作数乘以左操作数的结果赋值给左操作数 c _= a 相当于 c = c _ a
/= 除且赋值运算符,把左操作数除以右操作数的结果赋值给左操作数 c /= a 相当于 c = c / a
%= 求模且赋值运算符,求两个操作数的模赋值给左操作数 c %= a 相当于 c = c % a
**= 指数且赋值运算符,执行指数计算,并赋值给左操作数 c **= a 相当于 c = c ** a

并行赋值

Ruby 也支持变量的并行赋值。这使得多个变量可以通过一行的 Ruby 代码进行初始化。例如:

a = 10
b = 20
c = 30

使用并行赋值可以更快地声明:

a, b, c = 10, 20, 30

并行赋值在交换两个变量的值时也很有用:

a, b = b, a

下一篇 ruby 流程控制

分享到:

评论

目前只支持使用邮件参与评论。

目录