Jenkins實踐指南-04-Groovy基礎知識03

2.4.5 操作符

2.4.5.1 常規算術操作符

    [作者:Surpassme]常見的算術操作符主要如下所示:

操作符 說明 示例
+ 相加 1+2=3
- 相減 1-2=-1
* 相乘 2*2=4
/ 相除 3/2=1.5
% 求餘 3%2=1
** 求冪 3**2=9

2.4.5.2 賦值算術操作符

    [作者:Surpassme]常見的賦值算術操作符主要如下所示:

操作符 說明
+= 相加並賦值
-= 相減並賦值
*= 相乘並賦值
/= 相除並賦值
%= 求餘並賦值
**= 求冪並賦值

2.4.5.3 關係操作符

    [作者:Surpassme]常見的關係操作符主要如下所示:

操作符 說明
== 等於
!= 不等於
< 小於
<= 小於等於
> 大於
>= 大於等於
=== 絕對等於
!== 絕對不等於

2.4.5.4 邏輯操作符

    [作者:Surpassme]常見的邏輯操作符主要如下所示:

操作符 說明
&& 邏輯與
| | 邏輯或
! 邏輯非

2.4.5.5 三元操作符

    [作者:Surpassme]Groovy中的三元操作符,其基本語法如下所示:

判斷條件?條件成立的結果:條件不成立的結果

該操作符功能等同於if-else

    示例結果如下所示:

def result=30>28?true:false
println "result is ${result}" // true

2.4.5.6 自增操作符

    [作者:Surpassme]常見的自增操作符主要如下所示:

操作符 說明
++ 自增
-- 自減

2.4.6 控制語句

2.4.6.1 if-else

    [作者:Surpassme]Groovy中的if-else基本語法結構如下所示:

if (表達式){
   // 執行語句
} else if (表達式) {
  // 執行語句
} else {
  // 執行語句
}
  • 示例一:
def env="test"

if(env == "test"){
  println "current env is ${env}"
} else if(env == "dev"){
  println "current env is ${env}"
} else if(env == "release"){
  println "current env is ${env}"
} else {
   println "unknown env"
}
  • 示例二:
def personInfo=[:]

if (personInfo.isEmpty()){
   println "personInfo is empty:${personInfo} "
} else {
   println "personInfo value :${personInfo} "
}

2.4.6.2 switch-case

    [作者:Surpassme]Groovy中的switch-case基本語法結構如下所示:

  • 語法一:常規用法
switch (變量值){
   case 條件1:
      // 執行語句或表達式
      break
   case 條件2:
      // 執行語句或表達式
      break
   case 條件3:
      // 執行語句或表達式
      break
   case [條件3,條件4,條件5]:
      // 執行語句或表達式
      break
   default:
     // 執行語句或表達式
}
  • 語法二:支持switch-case 表達式
def variable = swithc (變量值){
   case 條件1 -> "結果1"
   case 條件2 -> "結果2"
   case 條件3 -> "結果3"
   case 條件4 -> "結果4"
}
  • 示例一:
def env="test"

switch (env){
  case "test":
     println "current env is ${env}"
     break
  case "dev":
     println "current env is ${env}"
     break
  case "release":
     println "current env is ${env}"
     break
  default:
     println "unknown env"
}
  • 示例二:
def env="dev"

switch (env){
  case ["test","dev"]:
     println "current env is test or dev ,not release yet"
     break
  case "release":
     println "current env is ${env}"
     break
  default:
     println "unknown env"
}    println "unknown env"
}
  • 示例三:
def env="test"

def currentEnv=switch (env){
    case "test" -> "current env is test"
    case "dev"  -> "current env is dev"
    case "release" -> "current env is release"
}

println currentEnv

2.4.6.3 循環語句

2.4.6.3.1 for語句
  • 1.經典for語句

    [作者:Surpassme]經典for語句,其語法結構如下所示:

for ( init; condition; increment )
{
   // statement
}
  • 2.for-in

    [作者:Surpassme]for-in其語法結構如下所示:

for ( item in Object)
{
   // statement
}
2.4.6.3.2 while語句
  • 1.while

    [作者:Surpassme]while其語法結構如下所示:

while(condition){
  // statement
}
  • 2.do-while

    [作者:Surpassme]do-while其語法結構如下所示:

do {
  // statement
} while(condition)
2.4.6.3.3 示例

    示例如下所示:

  • for示例
def hello="Hello,Surpass"
def helloSplit=hello.split(",")
for(def i=0; i < helloSplit.length;i++) {
   println helloSplit[i]
}
  • for-in示例
def personInfoMap=[name:"Surpass",age:28,loc:"Shanghai"]

for (item in personInfoMap){
   println "Key is : ${item.key},value is :${item.value}"
}

def personInfoList=["Surpass",28,"Shanghai"]

for (item in personInfoList){
   println "current itme is ${item}"
}
  • while/do-while示例
def (endNumberA,endNumberB,sumA,sumB)=[100,100,0,0]

while (endNumberA > 0){
   sumA+=endNumberA
   endNumberA--
}
do{
   sumB+=endNumberB
   endNumberB--
}while (endNumberB > 0)

2.4.7 函數

2.4.7.1 基本定義

    [作者:Surpassme]Groovy中的函數基本語法如下所示:

def functionName(parasA,...,parasN=defaulValue){
   // 執行語句
   return parasA
}

    簡要說明如下所示:

  • 函數定義使用關鍵字def
  • 函數的參數可以存在默認值,如果沒有值傳給參數,則使用默認值、

如果參數即存在非默認參數和默認參數,則默認參數必須位於參數列表的末尾進行定義

  • 函數的返回值,可以使用return返回,如果沒有return語句,則默認使用最後一個表達式的值做爲返回值

函數也可以一次性返回多個值,可以使用多變量賦值進行接收

2.4.7.2 函數示例

    示例如下所示:

  • 1.函數基本使用
def hello(name){
   return "Hello,${name}"
}

println hello("Surpass") // Hello,Surpass
  • 2.使用默認參數值
def hello(name,city="Shanghai"){
   return "Hello,${name},welcome to ${city}"
}

println hello("Surpass")          // Hello,Surpass,welcome to Shanghai
println hello("Surpass","Wuhan")  // Hello,Surpass,welcome to Wuhan
  • 3.使用不帶return的返回值
def hello(name,city="Shanghai"){
   def testStr="Test no return "
   helloStr="Hello,${name},welcome to ${city}"
}

println hello("Surpass","Wuhan") // Hello,Surpass,welcome to Wuhan
  • 4.使用不帶return的返回值
def hello(name,city="Shanghai"){
   helloStr="Hello,${name},welcome to ${city}"
   def testStr="Test no return "
}

println hello("Surpass","Wuhan") // Test no return
  • 5.返回多個值
def hello(name,city="Shanghai",from="Wuhan",to="Shenzen"){
   return [name,city,from,to]
}

def (name,city,from,to)=hello(name="Surpass")
println "name:${name},city:${city},from ${from},to ${to}" // name:Surpass,city:Shanghai,from Wuhan,to Shenzen

原文地址:https://www.jianshu.com/p/e59130bfbc16?v=1670776731178

本文同步在微信訂閱號上發佈,如各位小夥伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼添加關注:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章