目录
Groovy介绍:
-
Groovy是什么
Groovy时用于Java虚拟机的一种敏捷的动态语言,是一种成熟的面向对象的编程语言,既可以用于面向对象编程,也可以用作纯粹的脚本语言。其同时具有闭包和动态语言中的其他特性。
-
Groovy与Java对比
1.Groovy完全兼容Java语法,在Groovy中可以编写Java代码;
2.分号是可选的;
3.类、方法默认是public;
4.编译器自动给属性添加getter、setter;
5.属性可以直接用点号获取;
6.最后一个表达式的值会被作为返回值;
7.==等同于equals();
-
演示
// 类和方法默认是public的
class User {
private String name;
// 结尾可以不写分号
private int age
User(String name, int age) {
this.name = name
this.age = age
}
String getName() {
// 最后一个表达式被作为返回值
name
}
void setName(String name) {
this.name = name
}
// 编译器自动添加getter/setter
// age的getter/setter省略
}
User user1 = new User("Rose", 18);
// 属性可以直接用点号获取
println "user1.name = " + user1.name;
println "user1.age = " + user1.age;
User user2 = null;
// ==等同于equals方法,不会报空指针异常
println "user1是否等于user2:" + (user1 == user2);
-
Groovy高级特性
1.自带assert语句;
2.可选类型定义;
3.可选的括号;
4.字符串写法;
5.集合API;
6.闭包;
-
演示1
// 可选的类型定义
def version = 1;
// assert
assert version == 1;
// 字符串写法:
// 写法1:单引号,仅仅表示这是一个字符串
def str = 'Hello World'
// 写法2:双引号,字符串中可以添加变量
def str2 = "This version is ${version}"
// 写法3:三个单引号,字符串可以换行
def str3 = '''Welcome
to
Groovy'''
// 方法的括号可以不写
println(str)
println str2
println(str3)
-
演示2
// 创建list
def lists = ['maven','gradle']
// 追加元素
lists << 'ant'
assert lists.getClass() == ArrayList
assert lists.size() == 3
// 创建map
def testMap = ['Maven':2018,'Gradle':2020]
// 修改元素值
testMap.Gradle = 2019
// 不同方式获取map值
println testMap.Maven
println testMap['Gradle']
// 获取map对应的Java类型
println testMap.getClass()
-
演示3
// 闭包:就是一个代码块,可以包含参数,也可以不包含参数,其本身也可以作为参数
// 创建一个包含参数的闭包
def c1 = {
v ->
println v
}
// 创建一个不带参数的闭包
def c2 = {
println 'Hello Groovy'
}
// 创建一个带参数的闭包方法
def method1(Closure closure){
closure('Hello World')
}
// 创建一个不带参数的闭包方法
def method2(Closure closure){
closure()
}
// 以闭包为参数,调用方法
method1(c1)
method1(c2)
method2(c1)
method2(c2)
Groovy的基础知识先介绍到这里,接下来的博文会详细介绍Gradle的用法,其中便会涉及到Groovy的知识点,拭目以待吧~