0.前言
在这里记录了Groovy的基础简介,本系列开始对Groovy的进一步学习
https://blog.csdn.net/weixin_44484715/article/details/137221630
安装Groovy成功后,有两种运行Groovy的方式:
- 在Groovy安装目录/bin目录下,有一个groovyConsole.bat,双击可以打开Groovy控制台
- 在Idea中运行
1.字符串
groovy中的字符串可以有三种形式:单引号、双引号、三引号。他们之间的区别如下:
- 单引号是最简单的字符串,可以理解为仅支持作为写死的字符串使用,其他作用一概没有
- 双引号在单引号的基础上,支持变量应用,使用${}作为占位符
- 三引号在单引号的基础上,支持折行(注意三引号不支持变量引用)
groovy
// 双引号支持变量引用
def name = 'jack'
def bigName = "hello ${name}"
println(bigName) // 输出:hello jack
// 三引号支持折行
def person = '''name=jack
age=12
sex=man'''
println(person)
// 输出:
//name=jack
//age=12
//sex=man
注意:单引号和三引号是不能与java代码混用的,属于groovy特色
2.数值型
groovy的数值型包含整数型和小数型两种。
整型包括:
- byte
- char
- short
- int
- long
- BigInteger:无限精度,类似于Java中的BigDecimal
使用def定义整型变量时,groovy会自动赋予变量类型
groovy
def num1 = 1
print(num1 instanceof Integer)
// 输出:true
def num2 = 111111111111;
print(num2 instanceof Long)
// 输出:true
groovy也可以定义非十进制整数:
- 二进制:以0b为前缀
- 八进制:以0为前缀
- 十六进制:以0x为前缀
小数型包括:
- float
- double
- BigDecimal
Groovy可以使用科学计数法表示相应类型的数值,支持使用下划线对数字进行分割
groovy
assert 1E3 != 1_000.0
/** 输出:
Assertion failed:
assert 1E3 != 1_000.0
|
false
**/
3.集合类型
- 定义集合使用
[]
,也可以在集合中放置不同类型的元素
groovy
def nums = [1, 2, 3]
assert nums instanceof List
def nums2 = [1, "a", true]
- groovy没有自己的集合类型,在定义集合对象时,默认采用java的ArrayList类型。也可以使用
as
,强制定义List接口的实现类
groovy
def nums3 = [1,1,1] as LinkedList
assert nums3 instanceof java.util.LinkedList
- 可以通过
[]
来取用集合中的元素,下标可以是正数也可以是负数(类似python)
groovy
def nums = [1, 2, 3]
assert nums[0] == 1
assert nums[-1] == 3
- 可以使用
<<
在集合末尾添加元素
groovy
def nums = [1, 2, 3]
nums << 4
assert nums[3] == 4
- 可以定义多维集合,访问元素类似于java数组
groovy
def nums4 = [[1,2], [3,4]]
assert nums4[0][1] == 2
4.数组
- groovy复用List来表示数组,但必须显式声明数组的类型,或者使用as强制转为目标类型
groovy
String[] strArray = ['1', '2'];
assert strArray instanceof String[]
def numArray = [1,2,3] as int[]
assert numArray instanceof int[]
- groovy支持java风格的数组初始化
groovy
def nums5 = new int[] {1,2,3}
assert nums5[-1] == 3
注意,数组与List不同的是,定义数组时已经制定了类型,因此一个数组中存储的元素一定是相同类型的
5.Map类型
groovy的map对象就是Java中的LinkedHashMap
- 使用
[]
定义一个map,map中的key、value对使用逗号分隔。可以使用[]
取出key对应的value,也能使用.
取出value
groovy
def map1 = [red: 1, green:2]
assert map1['red'] == 1
assert map1.green == 2
如果想使用变量作为key值,需要使用(key变量)
的形式
groovy
def key = 1;
def map2 = [(key): 10]
assert map2.containsKey(key)