Ruby拥有内置的现代化运算符。运算符是用于执行不同操作的符号。例如,+
, -
,/
,*
等
Ruby运算符类型如下所示:
- 一元运算符
- 算术运算符
- 按位运算符
- 逻辑运算符
- 三元运算符
- 赋值运算符
- 比较运算符
- 范围运算符
1. 一元运算符
一元运算符可用在一个操作数上运行。
操作符 | 描述 |
---|---|
! |
布尔非 |
~ |
按位补码 |
+ |
一元加法 |
示例
在文件unary-operator.rb
中,写下面的代码。
#!/usr/bin/ruby -w
puts("Unary operator")
puts(~5)
puts(~-5)
puts(!true)
puts(!false)
执行上面代码,得到以下结果 -
F:\worksp\ruby>ruby unary-operator.rb
Unary operator
-6
4
false
true
F:\worksp\ruby>
2. 算术运算符
算术运算符将数值作为操作数,并将它们作为单个值返回。
操作符 | 描述 |
---|---|
+ |
相加运算符的两边值 |
- |
运算符的两边的值相减,第一个数减去第二个数 |
/ |
用右侧操作数除左侧操作数 |
* |
将运算符的两边值相乘 |
** |
将右侧操作数指定为左侧操作数的指数 |
% |
将左侧操作数除以右侧操作数后返回余数 |
示例
在文件airthmetic-operator.rb
中,写下面的代码。
#!/usr/bin/ruby -w
puts("add operator")
puts(10 + 20)
puts("subtract operator")
puts(35 - 15)
puts("multiply operator")
puts(4 * 8)
puts("division operator")
puts(25 / 5)
puts("exponential operator")
puts(5 ** 2)
puts("modulo operator")
puts(25 % 4)
执行上面代码,得到以下结果 -
F:\worksp\ruby>ruby airthmetic-operator.rb
add operator
30
subtract operator
20
multiply operator
32
division operator
5
exponential operator
25
modulo operator
1
F:\worksp\ruby>
3. 位运算符
按位运算符对位操作数进行操作。
操作符 | 描述 |
---|---|
& |
AND 运算符 |
OR 运算符 |
|
<< |
左移操作符 |
>> |
右移操作符 |
^ |
异或操作符 |
~ |
补码运算符 |
4. 逻辑运算符
逻辑运算符对位操作数进行操作。
操作符 | 描述 |
---|---|
&& |
AND 运算符 |
OR 运算符 |
5. 三元运算符
三元运算符首先检查给定条件是真还是假,然后再执行对应的条件语句。
操作符 | 描述 |
---|---|
?: |
条件表达式 |
示例
在文件ternary-operator.rb
中,编写下面的代码。
#!/usr/bin/ruby -w
puts("Ternary operator")
puts(2<5 ? 5:2)
puts(5<2 ? 5:2)
执行上面代码,得到以下结果 -
F:\worksp\ruby>ruby ternary-operator.rb
Ternary operator
5
2
F:\worksp\ruby>
6. 赋值运算符
赋值运算符用于为操作数分配一个值。
操作符 | 描述 |
---|---|
= |
简单赋值运算符 |
+= |
相加并赋值运算符 |
-= |
相减并赋值运算符 |
*= |
相乘并赋值运算符 |
/= |
相除并赋值运算符 |
%/ |
模除并赋值运算符 |
**= |
指数幂并赋值运算符 |
7. 比较运算符
比较运算符是用于比较两个操作数的大小,相等,不相等,大于,小于等等。
操作符 | 描述 |
---|---|
== |
等于运算符 |
!= |
不等于运算符 |
> |
大于运算符,左操作数大于右操作数? |
< |
小于运算符,右操作数大于左操作数? |
>= |
大于等于运算符,左操作数大于或等于右操作数? |
<= |
小于等于运算符,右操作数大于或等于左操作数? |
<=> |
组合比较运算符 |
.eql? |
检查比较操作数相等和类型是否相同? |
equal? |
检查比较对象ID 是否相等 |
示例
在文件comparison-operator.rb
中,编写下面的代码。
#!/usr/bin/ruby -w
puts("Comparison operator")
puts(2 == 5)
puts(2 != 5)
puts(2 > 5)
puts(2 < 5)
puts(2 >= 5)
puts(2 <= 5)
执行上面代码,得到以下结果 -
F:\worksp\ruby>ruby comparison-operator.rb
Comparison operator
false
true
false
true
false
true
F:\worksp\ruby>
8. 范围运算符
范围运算符创建一系列连续的值,包括两者之间的值的起始,结束和范围。
(..)
创建一个范围,包括最后一个术语,(...)
创建一个不包括最后一项的范围。
例如,对于1..5
的范围,输出范围为1
到5
,范围值也就是:1,2,3,4,5。
而对于1 ... 5
的范围,输出范围为1
到4
,范围值也就是:1,2,3,4。