Ruby擁有內建的現代化運算子。運算子是用於執行不同操作的符號。例如,+
, -
,/
,*
等
Ruby運算子型別如下所示:
一元運算子可用在一個運算元上執行。
操作符 | 描述 |
---|---|
! |
布林非 |
~ |
按位元二補數 |
+ |
一元加法 |
範例
在檔案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>
算術運算子將數值作為運算元,並將它們作為單個值返回。
操作符 | 描述 |
---|---|
+ |
相加運算子的兩邊值 |
- |
運算子的兩邊的值相減,第一個數減去第二個數 |
/ |
用右側運算元除左側運算元 |
* |
將運算子的兩邊值相乘 |
** |
將右側運算元指定為左側運算元的指數 |
% |
將左側運算元除以右側運算元後返回餘數 |
範例
在檔案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>
按位元運算子對位元運算數進行操作。
操作符 | 描述 |
---|---|
& |
AND 運算子 |
OR 運算子 |
|
<< |
左移操作符 |
>> |
右移操作符 |
^ |
互斥或操作符 |
~ |
二補數運算子 |
邏輯運算子對位元運算數進行操作。
操作符 | 描述 |
---|---|
&& |
AND 運算子 |
OR 運算子 |
三元運算子首先檢查給定條件是真還是假,然後再執行對應的條件語句。
操作符 | 描述 |
---|---|
?: |
條件表示式 |
範例
在檔案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>
賦值運算子用於為運算元分配一個值。
操作符 | 描述 |
---|---|
= |
簡單賦值運算子 |
+= |
相加並賦值運算子 |
-= |
相減並賦值運算子 |
*= |
相乘並賦值運算子 |
/= |
相除並賦值運算子 |
%/ |
模除並賦值運算子 |
**= |
指數冪並賦值運算子 |
比較運算子是用於比較兩個運算元的大小,相等,不相等,大於,小於等等。
操作符 | 描述 |
---|---|
== |
等於運算子 |
!= |
不等於運算子 |
> |
大於運算子,左運算元大於右運算元? |
< |
小於運算子,右運算元大於左運算元? |
>= |
大於等於運算子,左運算元大於或等於右運算元? |
<= |
小於等於運算子,右運算元大於或等於左運算元? |
<=> |
組合比較運算子 |
.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>
範圍運算子建立一系列連續的值,包括兩者之間的值的起始,結束和範圍。
(..)
建立一個範圍,包括最後一個術語,(...)
建立一個不包括最後一項的範圍。
例如,對於1..5
的範圍,輸出範圍為1
到5
,範圍值也就是:1,2,3,4,5。
而對於1 ... 5
的範圍,輸出範圍為1
到4
,範圍值也就是:1,2,3,4。