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運算符

Ruby運算符

OR運算符

<<

左移操作符

>>

右移操作符

^

異或操作符

~

補碼運算符

4. 邏輯運算符

邏輯運算符對位操作數進行操作。

操作符

描述

&&

AND運算符

Ruby運算符

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。