Ruby運算子


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的範圍,輸出範圍為15,範圍值也就是:1,2,3,4,5。

而對於1 ... 5的範圍,輸出範圍為14,範圍值也就是:1,2,3,4。