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中分号不是必须的
- 单引号和双引号都可以定义一个字符串常量
-
单引号不能对字符串里的表达式做运算,双引号可以对字符串常量里面的表达式做运算
- 运行结果
- 集合
- 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 printListStr
> Task :printListStr
java.util.ArrayList
1
2
3
4
5
6task 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 printmapstr
> Task :printMapStr
java.util.LinkedHashMap
123
456
key:width,Value:123
key:heigt,Value:456
-
- List
- 方法
- 括号是可以省略的
task invokeMethod <<{ method(1,2) method 1,2 } def method(int a,int b){ println a+b }
./gradlew invokeMethod
:invokeMethod
3
3 - 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:5BUILD SUCCESSFUL
- 代码块是可以做为参数被传递的
- 代码块是一段被花括号包围的代码
- 括号是可以省略的
Dana.Lee
To:Dana_Lee1016@126.com