Ruby擁有內(nèi)置的現(xiàn)代化運(yùn)算符。運(yùn)算符是用于執(zhí)行不同操作的符號(hào)。例如,+, - ,/,*等
Ruby運(yùn)算符類型如下所示:
一元運(yùn)算符可用在一個(gè)操作數(shù)上運(yùn)行。
| 操作符 | 描述 |
|---|---|
! |
布爾非 |
~ |
按位補(bǔ)碼 |
+ |
一元加法 |
示例
在文件unary-operator.rb中,寫下面的代碼。
#!/usr/bin/ruby -w
puts("Unary operator")
puts(~5)
puts(~-5)
puts(!true)
puts(!false)
執(zhí)行上面代碼,得到以下結(jié)果 -
F:\worksp\ruby>ruby unary-operator.rb
Unary operator
-6
4
false
true
F:\worksp\ruby>
算術(shù)運(yùn)算符將數(shù)值作為操作數(shù),并將它們作為單個(gè)值返回。
| 操作符 | 描述 |
|---|---|
+ |
相加運(yùn)算符的兩邊值 |
- |
運(yùn)算符的兩邊的值相減,第一個(gè)數(shù)減去第二個(gè)數(shù) |
/ |
用右側(cè)操作數(shù)除左側(cè)操作數(shù) |
* |
將運(yùn)算符的兩邊值相乘 |
** |
將右側(cè)操作數(shù)指定為左側(cè)操作數(shù)的指數(shù) |
% |
將左側(cè)操作數(shù)除以右側(cè)操作數(shù)后返回余數(shù) |
示例
在文件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)
執(zhí)行上面代碼,得到以下結(jié)果 -
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>
按位運(yùn)算符對(duì)位操作數(shù)進(jìn)行操作。
| 操作符 | 描述 |
|---|---|
& |
AND運(yùn)算符 |
![]() |
OR運(yùn)算符 |
<< |
左移操作符 |
>> |
右移操作符 |
^ |
異或操作符 |
~ |
補(bǔ)碼運(yùn)算符 |
邏輯運(yùn)算符對(duì)位操作數(shù)進(jìn)行操作。
| 操作符 | 描述 |
|---|---|
&& |
AND運(yùn)算符 |
![]() |
OR運(yùn)算符 |
三元運(yùn)算符首先檢查給定條件是真還是假,然后再執(zhí)行對(duì)應(yīng)的條件語句。
| 操作符 | 描述 |
|---|---|
?: |
條件表達(dá)式 |
示例
在文件ternary-operator.rb中,編寫下面的代碼。
#!/usr/bin/ruby -w
puts("Ternary operator")
puts(2<5 ? 5:2)
puts(5<2 ? 5:2)
執(zhí)行上面代碼,得到以下結(jié)果 -
F:\worksp\ruby>ruby ternary-operator.rb
Ternary operator
5
2
F:\worksp\ruby>
賦值運(yùn)算符用于為操作數(shù)分配一個(gè)值。
| 操作符 | 描述 |
|---|---|
= |
簡單賦值運(yùn)算符 |
+= |
相加并賦值運(yùn)算符 |
-= |
相減并賦值運(yùn)算符 |
*= |
相乘并賦值運(yùn)算符 |
/= |
相除并賦值運(yùn)算符 |
%/ |
模除并賦值運(yùn)算符 |
**= |
指數(shù)冪并賦值運(yùn)算符 |
比較運(yùn)算符是用于比較兩個(gè)操作數(shù)的大小,相等,不相等,大于,小于等等。
| 操作符 | 描述 |
|---|---|
== |
等于運(yùn)算符 |
!= |
不等于運(yùn)算符 |
> |
大于運(yùn)算符,左操作數(shù)大于右操作數(shù)? |
< |
小于運(yùn)算符,右操作數(shù)大于左操作數(shù)? |
>= |
大于等于運(yùn)算符,左操作數(shù)大于或等于右操作數(shù)? |
<= |
小于等于運(yùn)算符,右操作數(shù)大于或等于左操作數(shù)? |
<=> |
組合比較運(yùn)算符 |
.eql? |
檢查比較操作數(shù)相等和類型是否相同? |
equal? |
檢查比較對(duì)象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)
執(zhí)行上面代碼,得到以下結(jié)果 -
F:\worksp\ruby>ruby comparison-operator.rb
Comparison operator
false
true
false
true
false
true
F:\worksp\ruby>
范圍運(yùn)算符創(chuàng)建一系列連續(xù)的值,包括兩者之間的值的起始,結(jié)束和范圍。
(..)創(chuàng)建一個(gè)范圍,包括最后一個(gè)術(shù)語,(...)創(chuàng)建一個(gè)不包括最后一項(xiàng)的范圍。
例如,對(duì)于1..5的范圍,輸出范圍為1到5,范圍值也就是:1,2,3,4,5。
而對(duì)于1 ... 5的范圍,輸出范圍為1到4,范圍值也就是:1,2,3,4。