運(yùn)算符是一個(gè)符號(hào),通知編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作。
Groovy中有以下類型的運(yùn)算符 -
Groovy語言支持正常的算術(shù)運(yùn)算符任何語言。以下是在Groovy中可用的算術(shù)運(yùn)算符 -
運(yùn)算符 | 描述 | 例子 |
+ | 兩個(gè)操作數(shù)的加法 | 1 + 2 將得到 3 |
- | 第一第二操作數(shù)相減 |
2 - 1 將得到 1 |
* | 兩個(gè)操作數(shù)的乘法 | 2 * 2 將得到4 |
/ | 兩個(gè)操作數(shù)的除法 | 3/2 將得到 1.5 |
% | 取模運(yùn)算 | 3%2 將得到 1 |
++ | 自增運(yùn)算,在自身值的基礎(chǔ)上加1 |
INT X = 5; X ++; X 將得到 6 |
-- | 自減運(yùn)算,在自身值的基礎(chǔ)上減1
|
INT X = 5; X - -; X 將得到 4 |
關(guān)系運(yùn)算符允許對(duì)象的比較。以下是在Groovy中可用的關(guān)系運(yùn)算符 -
運(yùn)算符 | 描述 | 例子 |
---|---|---|
== | 測(cè)試兩個(gè)對(duì)象之間是否相等 | 2 == 2 將得到 true |
!= | 測(cè)試兩個(gè)對(duì)象之間是否不等 | 3 != 2 將得到 true |
< | 檢查是否左邊的對(duì)象是小于右邊的對(duì)象。 | 2 < 3 將得到 true |
<= | 檢查是否向左對(duì)象是小于或等于右邊的對(duì)象 | 2 <= 3 將得到 true |
> | 檢查是否左邊的對(duì)象比右邊的對(duì)象大。 | 3 > 2 將得到 true |
>= | 檢查是否向左對(duì)象大于或等于右邊的對(duì)象。 | 3>= 2 將得到 true |
邏輯運(yùn)算符用于計(jì)算布爾表達(dá)式。以下是在Groovy中提供的邏輯運(yùn)算符 -
運(yùn)算符 | 描述 | 例子 |
---|---|---|
&& | 這是邏輯“與”運(yùn)算 | true && true 得到 true |
|| | 這是邏輯“或”運(yùn)算 | true || true 得到 true |
! | 這是邏輯“非”運(yùn)算 | !true 得到 false |
Groovy中提供了四個(gè)位運(yùn)算符。以下是在Groovy中可用的位運(yùn)算符 -
運(yùn)算符 | 描述 |
---|---|
& | 這是位“與”運(yùn)算 |
| | 這是按位“或”運(yùn)算 |
^ | 這是按位“異或”或異或運(yùn)算符 |
? | 這是按位反運(yùn)算符 |
這里是顯示這些運(yùn)算符的真值表。
p | q | p&Q | p | q | p ^ Q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
Groovy語言也提供了賦值操作符。以下是在Groovy提供的賦值運(yùn)算符 -
運(yùn)算符 | 描述 | 例子 |
---|---|---|
+= | A += B 等價(jià)于 A = A+B |
DEF A = 5 A += 3 輸出將是8 |
-= | A -= B 等價(jià)于 A = A-B |
DEF A = 5 A -= 3 輸出將是2 |
*= | A *= B 等價(jià)于 A= A*B |
DEF A = 5 A *= 3 輸出將是15 |
/= | A /= B 等價(jià)于 A = A/B |
DEF A = 6 A /= 3 輸出將是2 |
(%)= | A (%)= B 等價(jià)于 A = A % B |
DEF A = 5 A %= 3 輸出將是2 |
Groovy支持范圍的概念,并在..符號(hào)的幫助下提供范圍運(yùn)算符的符號(hào)。下面給出了范圍運(yùn)算符的一個(gè)簡(jiǎn)單示例。
def range = 0..5
這只是定義了一個(gè)簡(jiǎn)單的整數(shù)范圍,存儲(chǔ)到一個(gè)局部變量稱為范圍內(nèi)的下限為0和上限為5。
以下代碼段顯示了如何使用各種運(yùn)算符。
class Example { static void main(String[] args) { def range = 5..10; println(range); println(range.get(2)); } }
當(dāng)我們運(yùn)行上面的程序,我們會(huì)得到以下結(jié)果 -
從println語句中,可以看到顯示在range語句中定義的整個(gè)數(shù)字范圍。
get語句用于從定義的范圍中獲取一個(gè)對(duì)象,它將索引值作為參數(shù)。
[5, 6, 7, 8, 9, 10] 7
在高版本的groovy中運(yùn)行結(jié)果如下:
5..10 7
其中?
5..10
?等價(jià)于?[5, 6, 7, 8, 9, 10]
?,這是Groovy中的一個(gè)整數(shù)范圍(Range)對(duì)象,包含從5到10的所有整數(shù)。這種寫法在Groovy中是非常常見的,它用于表示一個(gè)連續(xù)的整數(shù)序列,通常用于循環(huán)或遍歷操作中。
下表按優(yōu)先級(jí)順序列出了所有g(shù)roovy運(yùn)算符(僅列出部分運(yùn)算符)
運(yùn)算符 | 名稱 |
---|---|
?++ ? ?,-- ? ,?+ ? ?,- ? |
預(yù)增/減(自增/減),一元加,一元減 |
?* ?,? / ?, ?% ? |
乘法,除法,取模 |
?+ ?,- ? |
加法,減法(二元) |
?== ?,?!= ?, ?<=> ?? |
等于,不等于,比較運(yùn)算符 |
?& ? |
二進(jìn)制/位運(yùn)算符與 |
?^ ? |
二進(jìn)制/位異或 |
?| ? |
二進(jìn)制/按位或 |
?!? | 邏輯非 |
?&& ? |
邏輯與 |
?|| ? |
邏輯或 |
?= ?,+= ?,?-= ?,?*= ?,?/= ?,?%= ?,?**= ?
|
各種賦值運(yùn)算符 |
更多建議: