本小结内容主要以代码实现为主
基本语法定义
package top.zhexi.groovy
println "===========基本语法定义=========="
//变量的声明
def name = "test"
age = 20
//调用带参数的方法时可以省略括号
println(name + " " + age)
println name + " " + age
//断言assert
assert age == 19
运行输出结果:
===========基本语法定义==========
test 20
test 20
Caught: Assertion failed:
assert age == 19
| |
20 false
Assertion failed:
assert age == 19
| |
20 false
at top.zhexi.groovy.Grammer.run(Grammer.groovy:13)
Process finished with exit code 1
字符串的定义
println "=========字符串的定义==========="
str1= 'test' //定义普通的字符串
str2 = "test2 : ${str1}" //可以引用变量
str3 = '''三个单引号 name : test
ange : 30''' //按格式定义的字符串
println str1
println str2
println str3
执行输出结果:
=========字符串的定义===========
test
test2 : test
三个单引号name : test
ange : 30
集合的定义
println "=========集合的定义==========="
//list集合,使用[]来声明集合
def list = ["t1", "t2", "t3"]
//给list集合添加元素
list.add("add元素")
list << "新元素"
println list
println list.getClass() //查看定义的集合类型
//Map 映射,使用[key:value]方式定义
def map = ['name': '小明', 'age': 18]
// 给map赋值
map.put('email', 'xiaomi@test')
//使用点key的方式来赋值
map.gender = "boy"
println map
println map.getClass()
输出结果:
=========集合的定义===========
[t1, t2, t3, add元素, 新元素]
class java.util.ArrayList
[name:小明, age:18, email:xiaomi@test, gender:boy]
class java.util.LinkedHashMap
闭包
println "===========闭包============"
def c1 = {
println '不带参数的闭包'
}
def c2 = {
val ->
println "带参数的闭包: ${val}"
}
//定义方法形参是指定类型,接收不带参数的闭包方法
def method1(Closure clo) {
//两种方式都可以
clo()
clo.call()
}
//定义方法形参无指定类型,接受带参数的闭包的方法
def method2(closure) {
closure("小明")
closure.call("call小明")
}
//调用方法,传入已经定义好的闭包
method1 c1
method2 c2
// 调用方法时,直接定义新的闭包
method1 ({
println "无参数新闭包,带括号"
})
method1 {
println "无参数新闭包,不带括号"
}
method2 {
val->
println "带参数新闭包, ${val}"
}
输出结果:
===========闭包============
不带参数的闭包
不带参数的闭包
带参数的闭包: 小明
带参数的闭包: call小明
无参数新闭包,带括号
无参数新闭包,带括号
无参数新闭包,不带括号
无参数新闭包,不带括号
带参数新闭包, 小明
带参数新闭包, call小明
空值比较不抛出空指针异常
println "=======空值比较不抛出空指针异常======="
def testval = null
println testval.equals(null)
输出结果:
=======空值比较不抛出空指针异常=======
true