上一节,咱们了解了“变量的定义” 本章咱们将学习系列的基础编程知识,如:字符串/数组/集合等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()
}
复制代码
哈哈,该篇就写到这里(一块儿体系化学习,一块儿成长)