Groovy語法基礎

  • 字符串
task printStringClass <<{
  def str1 = '單引號'
  def str2 = "雙引號"

  println "單引號定義的字符串類型:"+str1.getClass().name;
  println "雙引號定義的字符串類型:"+str2.getClass().name;
}

task printStringVar{
        def name = "張三"
        println '單引號的變量計算:${name}'
        println "雙引號過的變量計算:${name}"
}

 

    • 運行結果
      /gradlew printStringClass
      :printStringClass
      單引號定義的字符串類型:java.lang.String
      雙引號定義的字符串類型:java.lang.String
      
      BUILD SUCCESSFUL
      
      Total time: 2.219 secs
      
      This build could be faster, please consider using the Gradle Daemon: http://gradle.org/docs/2.4/userguide/gradle_daemon.html
      endian11@endian11-virtual-machine:~/lzw/frame/android-gradle-book-code$ vim build.gradle 
      endian11@endian11-virtual-machine:~/lzw/frame/android-gradle-book-code$ ./gradlew printStringVar
      單引號的變量計算:${name}
      雙引號過的變量計算:張三
      :printStringVar UP-TO-DATE
      
      BUILD SUCCESSFUL
      
    • 在Groovy中分號不是必須的
    • 單引號和雙引號均可以定義一個字符串常量
    •  單引號不能對字符串裏的表達式作運算,雙引號能夠對字符串常量裏面的表達式作運算html

  • 集合
    • List
      • task printListStr <<{
          def numList = [1,2,3,4,5,6]
          println numList.getClass().name;
          numList.each{
                println it
          }
        }
        

        endian11@endian11-virtual-machine:~/lzw/frame/android-gradle-book-code$ gradle printListStrjava

        > Task :printListStr
        java.util.ArrayList
        1
        2
        3
        4
        5
        6android

        task printMapStr <<{
          def ahashMap = ['width':123,'heigt':456]
          println ahashMap.getClass().name
          println ahashMap["width"]
          println ahashMap.heigt
        
          ahashMap.each{
            println "key:${it.key},Value:${it.value}"
          }
        }
        

        endian11@endian11-virtual-machine:~/lzw/frame/android-gradle-book-code$ gradle printmapstrvim

        > Task :printMapStr
        java.util.LinkedHashMap
        123
        456
        key:width,Value:123
        key:heigt,Value:456ide

  • 方法
    • 括號是能夠省略的
      task invokeMethod <<{
        method(1,2)
        method 1,2
      }
      
      def method(int a,int b){
        println a+b
      }

      ./gradlew invokeMethod
      :invokeMethod
      3
      3gradle

    • return是能夠不寫的
      task printMethodReturn << {
        def add1 = method2 1,2
        def add2 = method2 5,3
      
        println "add1:${add1},add2:${add2}"
      }
      
      def method2(int a, int b){
        if (a > b){
         a
              }else{
                      b
              }
      }
      

      endian11@endian11-virtual-machine:~/lzw/frame/android-gradle-book-code$ ./gradlew printMethodReturn
      :printMethodReturn
      add1:2,add2:5ui

      BUILD SUCCESSFULcode

    • 代碼塊是能夠作爲參數被傳遞的
      • 代碼塊是一段被花括號包圍的代碼
相關文章
相關標籤/搜索