美文网首页Jenkins
Jenkins实践指南-04-Groovy基础知识03

Jenkins实践指南-04-Groovy基础知识03

作者: Surpassme | 来源:发表于2022-12-11 00:38 被阅读0次

    2.4.5 操作符

    2.4.5.1 常规算术操作符

        常见的算术操作符主要如下所示:

    操作符 说明 示例
    + 相加 1+2=3
    - 相减 1-2=-1
    * 相乘 2*2=4
    / 相除 3/2=1.5
    % 求余 3%2=1
    ** 求幂 3**2=9

    2.4.5.2 赋值算术操作符

        常见的赋值算术操作符主要如下所示:

    操作符 说明
    += 相加并赋值
    -= 相减并赋值
    *= 相乘并赋值
    /= 相除并赋值
    %= 求余并赋值
    **= 求幂并赋值

    2.4.5.3 关系操作符

        常见的关系操作符主要如下所示:

    操作符 说明
    == 等于
    != 不等于
    < 小于
    <= 小于等于
    > 大于
    >= 大于等于
    === 绝对等于
    !== 绝对不等于

    2.4.5.4 逻辑操作符

        常见的逻辑操作符主要如下所示:

    操作符 说明
    && 逻辑与
    | | 逻辑或
    ! 逻辑非

    2.4.5.5 三元操作符

        Groovy中的三元操作符,其基本语法如下所示:

    判断条件?条件成立的结果:条件不成立的结果
    

    该操作符功能等同于if-else

        示例结果如下所示:

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

    2.4.5.6 自增操作符

        常见的自增操作符主要如下所示:

    操作符 说明
    ++ 自增
    -- 自减

    2.4.6 控制语句

    2.4.6.1 if-else

        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

        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语句

        经典for语句,其语法结构如下所示:

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

        for-in其语法结构如下所示:

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

        while其语法结构如下所示:

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

        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 基本定义

        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
    

    相关文章

      网友评论

        本文标题:Jenkins实践指南-04-Groovy基础知识03

        本文链接:https://www.haomeiwen.com/subject/kptfqdtx.html