上一節,咱們瞭解了「變量的定義」 本章咱們將學習系列的基礎編程知識,如:字符串/數組/集合等java
(1)單引號定義字符串編程
def name = '單引號定義字符串'
複製代碼
這種定義是沒有格式的,須要換行等只能經過加號進行拼接json
(2)2個單引號定義數組
def nam2 = "2個單引號定義字符串"//普通定義
def helloExt = "hello : ${nam2}"//包含變量
def sum = "the sum is : ${3 + 2}"//包含表達式
複製代碼
這種定義方式是可拓展,可包含變量/表達式等,相對是比較經常使用的一種markdown
(3)3個單引號定義閉包
def name1 = ''' 3個單引號定義字符串 第一行 第二行 第三行 { name:Davi age:boy } '''
複製代碼
這種定義方式可讀性比較強,能夠指定格式,如:json等函數
先定義下:post
def str = "string1"
def str2 = "string2"
複製代碼
字符串的擴充之,中心填充:學習
str.center(5, 'xx')
複製代碼
左填充:this
str.padLeft(5, 'aa')
複製代碼
索引:
println str[0]//訪問單個元素
println str[0..1]//訪問0-1的元素
複製代碼
###閉包的定義和調用 閉包,就是可以讀取其餘函數內部變量的函數 先來看看不帶參數的定義和調用:
def closure1 = {
println 'hello closure!'
}
closure1.call()
複製代碼
帶參數的定義和調用:
def closure2 = {
String name, int age -> println "hello ${name}"
}
closure2('closure???', 9)
複製代碼
it 默認的參數的使用:
def closure3 = {
println "hello ${it}"
}
closure3.call("it 默認的參數...")
複製代碼
帶返回值的定義和調用:
def closure4 = {
return '閉包返回值'
}
println closure4.call()
複製代碼
和int的結合使用,求n的階乘,不須要for循環,簡潔的代碼:
int fab(int num) {
int result = 1
//1循環到num
1.upto(num, { n -> result *= n })
return result
}
複製代碼
string類型結合閉包,遍歷字符
void strFab() {
def str = '2 and 3 is 5'
str.each {
String s -> println a
}
}
複製代碼
3個重要的變量:this,owner,delegate
this:表明閉包定義處的類
owner:閉包定義處的類/對象
delegate:任意對象,默認和'owner'一致
大部分狀況下,三個關鍵字一致;
若是閉包中嵌套了閉包,那麼'this'指向的是最外層的,'owner' 'delegate' 指向的是最近那一層的
void demo() {
//3個重要的變量
def closure = {
//閉包定義處的類,好比:PluginImpl.groovy
println "closure this :" + this
//閉包定義處的類/對象
println "closure owner :" + owner
//任意對象,默認和'owner'一致
println "closure delegate :" + delegate
def inner = {
println "inner this :" + this
println "inner owner :" + owner
println "inner delegate :" + delegate
}
}
closure.call()
}
複製代碼
哈哈,該篇就寫到這裏(一塊兒體系化學習,一塊兒成長)