初见groovy

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章