groovy 中一切皆是对象
int a = 23
println a //23
def aa = 33
println aa //33
println a.class //class java.lang.Integer
println aa.class //class java.lang.Integer
def name = "fangfang"
def firstName = "yuanyuan"
println name.class //class java.lang.String
println firstName.class //class java.lang.String
def play(def str) {
println str + ":==hello groovy"
}
play("xingmu") //xingmu:==hello groovy
条件判断
def play2(def b){
if (b){
println "hello world"
}else{
println "hello city"
}
}
play2(true) // hello world
list集合
// 定义list
def list = ["fangfang","yuanyuan"]
println "======根据下标获取集合中的元素========="
println list[0]
println list[1]
println "======添加元素========"
list << "changchang"
list << "duanduan"
println "======开始遍历========"
for(str in list){
println str
}
执行结果
======根据下标获取集合中的元素=========
fangfang
yuanyuan
======添加元素========
======开始遍历========
fangfang
yuanyuan
changchang
duanduan
map集合
def map = ["fangfang":"方方","yuanyuan":"圆圆","changchang":"长长"]
println "======添加元素========"
map.duanduan="短短"
println "======获取map值========"
println map.get("fangfang");
println map.get("duanduan");
println "======遍历map集合========"
for(entry in map){
println("key: " + entry.getKey()+" value: "+ entry.getValue())
}
执行结果
======添加元素========
======获取map值========
方方
短短
======遍历map集合========
key: fangfang value: 方方
key: yuanyuan value: 圆圆
key: changchang value: 长长
key: duanduan value: 短短
三种不同的引号的字符串
// 单引号定义的字符串和 java 中的一样
println '==一般字符串================'
def name = 'this is \'a\' name'
println name.class
//用三个单引号来进行定义string类型,可以格式化输出字符串
println '==可以格式化的字符串================'
def thuplename = '''this is name'''
println thuplename
println thuplename.class
def linename = '''
line one
line two
line three
'''
println linename
println linename.class
println ""
//双引号定义的字符串可以扩展
println '==可以扩展的字符串================'
def kuoname = "name"
def helloname = "hello $kuoname"
println helloname
println helloname.class
执行结果
==一般字符串================
class java.lang.String
==可以格式化的字符串================
this is name
class java.lang.String
line one
line two
line three
class java.lang.String
==可以扩展的字符串================
hello name
class org.codehaus.groovy.runtime.GStringImpl
闭包
闭包就是groovy
中一段代码块,主要是用来做为参数在方法之间传递使用。
基本闭包语法
// 定义一个闭包
def closure = {
println "hello groovy"
}
// 定义一个带有闭包参数的方法
def play(Closure closure){
// 执行闭包
closure()
}
// 调用方法,传递参数
play(closure) // hello groovy
带参数的闭包
// 闭包
def closureWithParam = {
param->{
println "参数为: " + param
}
}
// 方法
def play(Closure closure){
closure("groovy")
}
// 调用方法,传递参数
play(closureWithParam) // 参数为: groovy