文章目录

  • 一、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环境

参考文章:https://blog.csdn.net/mathew_leung/article/details/87922869

1.打开groovy自带的编辑器

DOS命令行输入groovyconsole

二、数值和表达式

1.整数运算符

2.混合运算

3.赋值

第一次使用变量,需要用def去声明变量

def conut = 0           #声明并初始化变量
count = conut + 1     #在当前值的基础上加1

变量被称作标识符,标识符命名规则

判断变量是否为整数

if(value instanceof Integer) {println "是整型"
} else {println "不是整型"
}

三、字符串和正则表达式

1.字符串索引


2.基本操作

3.正则表达式

=~表示模糊匹配;==~表示精确匹配

4.字符串替换

webVersion = webVersion.replaceAll("\n","")     //替换字符串后面的换行符
def test = url.replaceAll("http(s)?:","")      //替换http:或者https:为空

5.常用操作

字符串分割

split()方法不支持同时对多个字符进行分割,tokenize()支持

Jenkins高级篇之Pipeline实践篇-2-groovy中字符串操作split()和tokenize()区别

判断字符串是否为数字

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 = strings.split("\n")     //以换行符进行分割,返回一个列表
def Flag = fileExists '/data/host.yaml'          //存在返回真,不存在返回假
alist -= [1]   //删除列表alist中值为1的元素



遍历列表

 for(ip in ipList) {     //for里面的变量ip是个局部变量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.keydef value = entry.valueprintln keyprintln value
}
//方法二for (Map.Entry<String, List> entry:paramMap .entrySet()){println entry.getKey()println entry.getValue()
}
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 {语句块}//trycatch(Exception err) {throw new Exception("*******Caught an exception: ${err}")}
}

不抛出异常

try {sh 'lsd'
} catch (ignored) {println 'not throw exception'
}

十三、选择语句

switch (type) {case "mysql":println("mysql数据库")breakcase "oracle":println("oracle数据库")breakdefault:println("前面没有匹配下,执行default下面的语句")}

十三、其它

查看数据类型

println(alist.getClass())

Groovy语法大全相关推荐

  1. 【Groovy】Groovy 方法调用 ( 字符串切割 | 使用 Java 语法切割字符串 | 使用 Groovy 语法切割字符串直接为变量赋值 | 数组赋值给变量 变量个数小于等于数组长度 )

    文章目录 一.字符串切割 1.使用 Java 语法切割字符串 2.使用 Groovy 语法切割字符串直接为变量赋值 3.数组赋值给变量 变量个数小于等于数组长度 二.完整代码示例 一.字符串切割 在 ...

  2. 【Groovy】Groovy 代码创建 ( 使用 Java 语法实现 Groovy 类和主函数并运行 | 按照 Groovy 语法改造上述 Java 语法规则代码 )

    文章目录 一.创建 Groovy 代码文件 二.使用 Java 语法实现 Groovy 类和主函数并运行 三.按照 Groovy 语法改造上述 Java 语法规则代码 一.创建 Groovy 代码文件 ...

  3. DB2数据库SQL语法大全推荐word版

    <DB2数据库SQL语法大全推荐word版> 下载地址: 网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731437.html

  4. html设置边框dw,Dreamweaver表格边框设置的css语法大全

    Dreamweaver表格边框设置的css语法大全 具体内容包括:上边框宽度.右边框宽度.下边框宽度.左边框宽度.边框宽度.边框颜色.边框样式.上边框.下边框.左边框.右边框.边框.宽度.高度.有关标 ...

  5. groovy语法基础

    转载自:http://www.ibm.com/developerworks/cn/education/java/j-groovy/j-groovy.html 使用 Groovy 的简单语法开发 Jav ...

  6. Mysql语法大全(命令行)(简洁、明了、全面)

    Mysql命令行的语法 另外一个Mysql语法大全的版本:点这里 两个Mysql语法大全以及命令行代码!!!基本上学习Mysql没有问题 嘿嘿!学习是一个长期的过程!!!还会继续更新!!! 基本的My ...

  7. 批处理文件语法大全(怎么写Bat文件)

    批处理文件语法大全(怎么写Bat文件) 作者:本站  来源:本站整理  发布时间:2006-11-27 17:05:08  发布人:admin 减小字体 增大字体 扩展名是bat(在nt/2000/x ...

  8. Markdown语法大全(超级版)

    Markdown语法大全(超级版) CSDN的参考文档并不全-- 文章目录 Markdown语法大全(超级版) 概述 设计理念 内联 HTML 语法 特殊字符自动转义 行内语法讲解 注释的表述 代码法 ...

  9. Markdown编辑器语法大全

    一.什么是Markdown? Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(英语:John Gruber).它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者H ...

最新文章

  1. android 开发框架 怎么使用,Android快速开发框架dyh详解(二)---控件层的使用
  2. oracle11gr2查看数据库状态,Oracle 11gR2数据库文件丢失后的恢复测试
  3. 【spring-boot】restfull api 返回值中,去掉 null 值
  4. 学习过程中的一些想法
  5. JSONPath 解析 JSON 内容详解(翻译自 github)
  6. HCNA配置telnet远程管理
  7. JDBC第三篇--【事务、元数据、改造JDBC工具类】
  8. 数据资产管理及数据管控体系建设思路
  9. 下载Linux系统内文件到Windows
  10. pdf在线免费去水印 以及图片去水印 方法
  11. PyTorch实现基于卷积神经网络的面部表情识别
  12. 悟空问答死于知乎十周年
  13. 有了TeamViewer,在家工作不是难事
  14. 【Java】数组Array(概念、相关语法、相关算法)
  15. Perceptron(感知机与径向基)
  16. POJ2431 Expedition(优先队列)
  17. 2004年7月15日
  18. VS Code配置Java环境(Java17)
  19. 【LabVIEW小技巧】LabVIEW用数值表示颜色盒的值
  20. UltralSO制作Centos U盘系统盘

热门文章

  1. 开关电源PCB设计六大步骤
  2. cisco 交换机恢复IOS与更改波特率
  3. SQL的基础学习:一、检索和排序数据
  4. 几个在线查看函数图像的网站
  5. linux内核移植步骤
  6. SCDN上好多maomao啊
  7. 信用卡分期推销太烦人?你可以这样破解
  8. 全志R329如何设置蓝牙自动重连时间或关闭自动重连?
  9. JS 可编辑表格的实现
  10. 「人物特写」工程院院士谭建荣:马云不是制造业的杀手,工业机器人也不是救命良药...