Groovy基础语法
本模块主要学习Groovy基础语法,掌握基础语法便于在流水线中数据处理😀
目录
简介
Groovy是一种功能强大,可选类型和动态 语言,支持Java平台。旨在提高开发人员的生产力得益于简洁,熟悉且简单易学的语法。可以与任何Java程序顺利集成,并立即为您的应用程序提供强大的功能,包括脚本编写功能,特定领域语言编写,运行时和编译时元编程以及函数式编程。

安装
- 下载安装包(先安装JDK)
- 解压安装包 获取安装包bin目录
- 写入/etc/profile文件
export GROOVY_HOME=xxxexport PATH=$PATH:$GROOVY_HOME/binsource /etc/profile

数据类型
字符串string
字符串表示: 单引号、双引号、三引号
contains() 是否包含特定内容 返回true falsesize() length() 字符串数量大小长度toString() 转换成string类型indexOf() 元素的索引endsWith() 是否指定字符结尾minus() plus() 去掉、增加字符串reverse() 反向排序substring(1,2) 字符串的指定索引开始的子字符串toUpperCase() toLowerCase() 字符串大小写转换split() 字符串分割 默认空格分割 返回列表
列表list
列表的表示: [] [1,2,3,4]
+ - += -= 元素增加减少isEmpty() 判断add() << 添加元素是否为空intersect([2,3]) disjoint([1]) 取交集、判断是否有交集flatten() 合并嵌套的列表unique() 去重reverse() sort() 反转 升序count() 元素个数join() 将元素按照参数链接sum() min() max() 求和 最小值 最大值contains() 包含特定元素remove(2) removeAll()each{} 遍历
映射map
types = [“maven”:”mvn”]
size() map大小[’key’] .key get() 获取valueisEmpty() 是否为空containKey() 是否包含keycontainValue() 是否包含指定的valuekeySet() 生成key的列表each{} 遍历mapremove(‘a‘) 删除元素(k-v)练习groovy:000> [:]===> [:]groovy:000> [1:2]===> [1:2]groovy:000> [1:2][1]===> 2groovy:000> [1:2,3:4,5:6]===> [1:2, 3:4, 5:6]groovy:000> [1:2,3:4,5:6].keySet()===> [1, 3, 5]groovy:000> [1:2,3:4,5:6].values()===> [2, 4, 6]groovy:000> [1:2,3:4,5:6] + [7:8]===> [1:2, 3:4, 5:6, 7:8]groovy:000> [1:2,3:4,5:6] - [7:8]===> [1:2, 3:4, 5:6]
条件语句
if语句
在Jenkinsfile中可用于条件判断。
if (表达式) {//xxxx} else if(表达式2) {//xxxxx} else {//}练习groovy:000> buildType = "maven"===> mavengroovy:000> if (buildType == "maven"){groovy:001> println("This is a maven project!")groovy:002> } else if (buildType == "gradle"){groovy:003> println("This is a gradle project!")groovy:004> } else {groovy:005> println("Project Type Error!")groovy:006> }
switch语句
switch("${buildType}"){case ”maven"://xxxxbreak;case ”ant"://xxxxbreak;default://xxxx}练习switch("${buildType}"){case 'maven':println("This is a maven project !")break;;;case 'gradle':println("This is a gradle projects!")break;;;default:println("Project Type Error!");;}
循环语句
for循环语句
test = [1,2,3]for ( i in test){///xxxxxxbreak;}//代码langs = ['java','python','groovy']for ( lang in langs ){if (lang == "java"){println("lang error in java")}else {println("lang is ${lang}")}}
while循环语句
while(true){//xxxx}
函数
在共享库中每个类中的方法。
def PrintMes(info){println(info)return info}response = PrintMes("DevOps")println(response)
