Groovy 運(yùn)算符

2023-09-07 15:21 更新

運(yùn)算符是一個(gè)符號(hào),通知編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作。

Groovy中有以下類型的運(yùn)算符 -

  • 算術(shù)運(yùn)算符
  • 關(guān)系運(yùn)算符
  • 邏輯運(yùn)算符
  • 位運(yùn)算符
  • 賦值運(yùn)算符

算術(shù)運(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)算符

關(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)算符

邏輯運(yùn)算符用于計(jì)算布爾表達(dá)式。以下是在Groovy中提供的邏輯運(yùn)算符 -

顯示示例

運(yùn)算符 描述 例子
&& 這是邏輯“與”運(yùn)算 true && true 得到 true
|| 這是邏輯“或”運(yùn)算 true || true 得到 true
! 這是邏輯“非”運(yùn)算 !true 得到 false

位運(yùn)算符

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

賦值運(yùn)算符

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

范圍運(yùn)算符

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ùn)算符優(yōu)先級(jí)

下表按優(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)算符


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)