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