文章目录
- 一、Win10安装groovy环境
- `1.打开groovy自带的编辑器`
- 二、数值和表达式
- `1.整数运算符`
- `2.混合运算`
- `3.赋值`
- 第一次使用变量,需要用def去声明变量
- 变量被称作标识符,标识符命名规则
- 三、字符串和正则表达式
- `1.字符串索引`
- `2.基本操作`
- `3.正则表达式`
- `4.替换字符串后面的换行符`
- `5.常用操作`
- 判断字符串是否为数字
- 四、列表、映射和范围
- `1.列表`
- 列表方法
- 遍历列表
- 以逗号分隔,存到列表中
- 把列表元素拼接成字符串
- `2.映射(类似Python的字典)`
- 映射方法
- 映射取值方法对比
- 遍历映射
- `3.范围`
- 包含范围的示例
- 范围方法
- 五、基本输入输出
- `1.基本输出`
- `2.格式化输出`
- `3.简单输入`
- 六、学习案例1
- 七、方法
- 一个简单的方法定义
- 八、判断语句
- if
- 九、文件
- 写文件
- 十、闭包
- 一个简单的参数化闭包
- 使用隐参数it
- 十一、对象
- 追加datas这个Map对象到parameter
- 十二、异常处理
- 十三、其它
- 查看数据类型
参考书籍《GROOVY入门经典》
一、Win10安装groovy环境
1.打开groovy自带的编辑器
DOS命令行输入groovyconsole
二、数值和表达式
1.整数运算符
2.混合运算
3.赋值
第一次使用变量,需要用def去声明变量
def conut = 0 #声明并初始化变量
count = conut + 1 #在当前值的基础上加1
变量被称作标识符,标识符命名规则
三、字符串和正则表达式
1.字符串索引
2.基本操作
3.正则表达式
=~
表示模糊匹配;==~
表示精确匹配
4.替换字符串后面的换行符
webVersion = webVersion.replaceAll("\n","")
5.常用操作
判断字符串是否为数字
def num = '1106502'
if(! num.isInteger() && ! num.isFloat()){
println "不是数字"
}else{
println "是数字"
}
println num
}
VALUE.contains('abc') //字符串包含abc
VALUE.startsWith('test') //以test开头为真
VALUE.endsWith('.txt') //VALUE字符串以.txt结尾为真
四、列表、映射和范围
参考文章:
Groovy的List(列表)操作
1.列表
def numbers = [11, 22] #定义一个新列表
numbers << 13 #[11, 22, 13]
numbers + [14, 15] #[11, 22, 13, 14, 15]
numbers -[11] #[22, 13]
列表方法
def arr = new ArrayList() //定义一个空列表
def HostIpList = [] //定义一个空列表
alist.contains(4) //检查4是否在alist列表中
alist.remove('b') //删除列表中的b元素
HostIpList = Hosts.split("\n") //以换行符进行分割,返回一个列表
def Flag = fileExists '/data/host.yaml' //存在返回真,不存在返回假
alist -= [1] //删除列表alist中值为1的元素
遍历列表
for(ip in ipList) {
println ip
}
或者
[1, 2, 3].each {println it}
以逗号分隔,存到列表中
def nfs_server = "192.168.1.1,192.168.1.2"
def nfsIPList = nfs_server.split(",")
把列表元素拼接成字符串
string1 = alist[0] + '-' + alist[1]
2.映射(类似Python的字典)
简单的映射
映射方法
映射取值方法对比
def paramMap = ["a":1, "b":2]
paramMap.a和paramMap.get[‘a’]都可以获取a的值
如果paramMap中没有a,paramMap.a返回null
,paramMap.get[‘a’]会抛出异常
遍历映射
def paramMap = ["a":1, "b":2]
paramMap.each{entry ->
def key = entry.key
def value = entry.value
println key
println value
}
def map1 = [:] //定义空映射
3.范围
包含范围的示例
范围方法
五、基本输入输出
1.基本输出
println "Hello World!"
2.格式化输出
3.简单输入
六、学习案例1
def library =[ 'Ken' : ['Groovy','UML'],
'John' : ['java']
]
library['Sally'] = ['Basic']
library['John'] = library['John'] << 'OOD'
library['Ken'].contains('UML')
library.keySet().sort()
library['Ken'].size
七、方法
一个简单的方法定义
def greetings() {
println 'Hello World!'
}
greetings()
八、判断语句
if
if(表达式){
cmd
} else {
cmd
}
九、文件
写文件
outFile = new File(‘/tmp/t1.txt’)
outFile.append('Hello World'+'\n')
十、闭包
表示一段可执行的代码库,类似于方法(函数)。
一个简单的参数化闭包
def clos={param -> println "Hello ${param}"}
clos('World')
解释:
param为形参,World为实参
使用隐参数it
def clos={println "Hello ${it}"}
clos.call('World')
十一、对象
追加datas这个Map对象到parameter
def parameter = new HashMap()
parameter.putAll(datas)
十二、异常处理
timestamps
{
try{
语句块
}//try
catch(Exception err)
{
throw new Exception("*******Caught an exception: ${err}")
}
}
十三、其它
查看数据类型
println(alist.getClass())