3.Groovy基础语法介绍
Posted pibaosi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.Groovy基础语法介绍相关的知识,希望对你有一定的参考价值。
1、变量申明
访问修饰符
def:相当于局部变量
ext:相当于全局变量
申明变量:
// groovy是一种规则非常松的语言,所有语句后面不用写分号,
// 而且类型不用写也是可以的
def int x = 1
def x = 1
2、字符串
Groovy 提供了多种表示 String 字面量的方法,在 Groovy 中字符串可以用单引号(‘),双引号(“)或三引号(”“”)括起来。由双引号括起来的字符串可以对$符号进行转义,由三重引号括起来的字符串可以跨越多行。
def xx = ‘i have $x ¥‘
def y = 11
def yy = "i have $x ¥" //这里对$x转义
def zz = """
hi~
i have something to do
thank you
"""
3、范围
范围是指定值序列的速记。范围由序列中的第一个和最后一个值表示,范围也可以是包含或排除,包含范围包括从第一个到最后一个的所有值,而独占范围包括除最后一个之外的所有值。这里有一些范例文字的例子。
- 1..10 - 包含范围的示例
- 1 .. <10 - 独占范围的示例
- ‘a‘..‘x‘ - 范围也可以由字符组成
- 10..1 - 范围也可以按降序排列
- ‘x‘..‘a‘ - 范围也可以由字符组成并按降序排列
def test(){
for(i in 1..5){
println i
}
}
4、集合和映射
1.4.1、集合,相当于 Java 中的 List 对象。
//创建一个空的列表
def list = []
// 增加一个元素
list.add("Gradle")
// 左移添加,返回该列表
list << "Groovy"
// 增加多个元素
list.addAll(["Gradle","Groovy"])
// 删除一个元素
list.remove("Groovy")
1.4.2、映射,相当于 Java 中的 Map 对象。
//创建空的映射
def map = [:]
//增加值
map = [‘name‘:‘Bill‘,‘age‘:18]
map.put(‘lastName‘,‘Yang‘)
//遍历映射元素
map.each { println "$it.key: $it.value" }
map.eachWithIndex { it, i -> println "$i: $it"}
//判断映射是否包含某键
assert map.containsKey(‘name‘)
5、函数和闭包
函数,也可以写成和 Java 中一样的方法,不过 groovy 可以写的更简单些。
//形参数类型可以不写
String doSomething(arg1, arg2){
println "I will do something!!"
}
//不指定返回类弄,必须加def,最后一句不用写return,默认返回的是最后一句
def doSomething(){
println "I will do something too!!"
}
闭包,它英文是 closure,闭包是一种数据结构,属于一段代码,有两种常见的格式。
//格式1: def xx = {param -> code}
def closure = {//闭包是一段代码,所以用大括号
String param, int param1 ->
return println ‘do something!!‘
}
//如果闭包没有参数,默认会有一个类似于this的it参数
//格式2: 没有参数 def xxx = {无参数,纯code} 这种情况不需要->符号
def colsure = {"hello, $it"}
等同于
def colsure = {it -> "hello, $it"}
闭包调用
colsure("param1", "param2")
//如果函数的最后一个参数是闭包,这个函数的小括号可以不写
//常见到的写法如下
task hello{ //这个理解成一个闭包,里面再嵌套了一个闭包
doLast{
println "hello"
}
}
6、类和对象
Groovy 和其他任何面向对象语言一样,也存在类和对象的概念。在 Groovy 中,类是数据的集合和对该数据进行操作的一系列方法。类的数据和方法用于表示问题域中的一些现实世界对象,它和 java 中类的定义是一样的,换言之,Groovy 类就是 Java 类。
以上是关于3.Groovy基础语法介绍的主要内容,如果未能解决你的问题,请参考以下文章