一.什么是Groovy
Groovy是一种基于JVM(JAVA虚拟机)的敏捷开发语言,结合Python,Ruby,Smalltalk等许多很多强大的特性,Groovy代码能够和java代码很好地结合。Groovy类和java类一样,完全可以用标准的java bean语法定义一个Groovy类,但是试用Groovy的方式定义类,这样的好处可以写少一半的代码。
1.不需要public修饰符
2.不需要类型说明
3.不需要get/set方法
4.不需要构造函数
5.不需要return
6.不需要()
身为Android开发者为什么要学Groovy呢,因为Gradle的背后就是Groovy来支持的。
首先先介绍如何在android stdio运行groovy:
在跟目录build.gradle下直接编写groovy:
然后在Terminal敲命令:
即可运行成功.注意:paul是task的名字
基本语法:
用def来定义变量和方法:
关键词
as | assert | break | case |
catch | class | const | continue |
def | default | do | else |
enum | extends | false | Finally |
for | goto | if | implements |
import | in | instanceof | interface |
new | pull | package | return |
super | switch | this | throw |
throws | trait | true | try |
while |
数据类型
Groovy提供多种内置数据类型:
byte:表示字节值
short:表示一个短整型
int:用来表示整数
long:用来表示长整型
float:用来表示32位浮点数
double:用来表示64位浮点数
char:定义了单个字符文字
boolean:表示一个布尔值
String:以字符串的形式表示文本
变量命名
变量的名称可以由字母,数字和下划线开头,大写和小写字母是不一样
运算符
算术运算符:
+两个操作数的加法
-两个操作数的减法
*两个操作数的乘法
/两个操作数的除法
%取模运算
++自增运算
--自减运算
关系运算符
== 两个对象是否相等
!=两个对象是否不等
<左边的对象是否小于右边的对象
<=左边的对象是否小于右边的对象
>左边的对象是否比右边的对象大
>=左边的对象是否大于等于右边的对象
逻辑运算符
&&逻辑与
||l逻辑或
!逻辑非
位运算符
&位与运算
|位或运算
~按位反运算
^按位异或
泛型
在定义类,接口和方法时,泛型能使(类或接口)作为参数,在方法声明中使用更熟悉的形式参数非常类似,类型参数提供一种方法,可以为不同的输入重复使用相同的代码。区别在于形式参数的输入值,类型参数的输入数类型。
下面写个例子:
上面代码是创建一个名为ListTest的类,在类定义前面的<T>关键字,告诉编译器这个类是可以接受任何类型的。在Task中声明两个不同类型的对象,第一个是String类型,第二个是Integer类型。
闭包
闭包是一个短的匿名代码块,通常跨越几行代码,一个方法甚至可以将代码块作为参数,它们是匿名的
下面举个例子:
在上面的例子中,代码行{println"sssss"}称为闭包,此标识符引用的代码块可以使用calll来执行,效果如下图:
闭包可以包含形式参数,使它们更有用,像Groovy一样。
上面例子中,注意&{param},这让cln接受一个参数,当通过cln.call()语句时,可以选择一个参数传递给闭包。结果如下:
闭包可以在定义闭包时引用变量
在方法中使用闭包,闭包也可以用作方法的参数,在Groovy中,很多用于数据类型的内置方法都有闭包作为参数类型,下面是例子:
在上述例子中,定义了一个名为mFun的静态方法,它将闭包作为参数。
然后我们在task里定义一个闭包,作为一个参数传递给mFun方法
结果显而易见:
另外还有很多语法 用的时候可以查看官方文档或者点击打开链接