首页 > 其他分享 >4.3 Groovy 简明教程

4.3 Groovy 简明教程

时间:2024-07-09 13:30:27浏览次数:6  
标签:Groovy groovy 教程 4.3 int static println hello

最近一直有很多同学提到不会写 Jenkins Pipeline 脚本,我都是直接摔一个 Jenkins 官方文档给他们,但是当我自己仔细去查看资料的时候发现并非如此简单,无论是声明式还是脚本式的 Pipeline 都依赖了 Groovy 脚本,所以如果要很好的掌握 Pipeline 脚本的用法,我们非常有必要去了解下 Groovy 语言。

什么是 Groovy

Groovy 是跑在 JVM 中的另外一种语言,我们可以用 Groovy 在 Java 平台上进行编程,使用方式基本与使用 Java 代码的方式相同,所以如果你熟悉 Java 代码的话基本上不用花很多精力就可以掌握 Groovy 了,它的语法与 Java 语言的语法很相似,而且完成同样的功能基本上所需要的 Groovy 代码量会比 Java 的代码量少。

官方网站:https://groovy.apache.orgopen in new window

环境搭建

要安装 Groovy 环境非常简单,前往官网网站下载对应的平台安装包一键安装即可:https://groovy.apache.org/download.html,我这里使用的是 Mac,当然也可以使用比较方便的 Homebrew 工具来进行一键安装:

$ brew install groovy
 

可以使用下面的命令查看 groovy 是否安装成功:

$ groovy -v
Groovy Version: 2.5.6 JVM: 1.8.0_05 Vendor: Oracle Corporation OS: Mac OS X
 

基本语法

运行方法

使用编辑器(vscode)新建一个 Groovy 文件 hello.groovy,文件内容如下:

class Example {
   static void main(String[] args) {
        // 使用 println 打印信息到 stdout
        /*除了上面的注释方法外,这里没也是注释信息哦*/
        println 'Hello World'
        println "Hello World";
   }
}
 

如果你对 Java 代码较熟悉的话,可以看到上面的 Groovy 是非常类似的。

然后可以使用 groovy 命令运行上面的程序:

$ groovy hello.groovy
Hello World
Hello World
 

从输出结果可以看出了 Groovy 里面支持单引号双引号两种方式,注释支持///**/两种方式,而且不以分号“;”结尾也可以,但是我们还是推荐都带上分号保持代码的一致性。

标识符

标识符被用来定义变量,函数或其他用户定义的变量。标识符以字母、美元或下划线开头,不能以数字开头。以下是有效标识符的一些例子 :

def employeename 
def student1 
def student_name
 

其中,def是在 Groovy 中用来定义标识符的关键字。

如下代码:

class Example {
    static void main(String[] args) {
        String x = "Hello";
        println(x);
        def _Name = "优点知识";
        println(_Name);
        println "Hello World";
    }
}
 

运行结果如下:

$ groovy hello.groovy
Hello
优点知识
Hello World
 

数据类型

上述例子中我们定义了一个字符串 x 和一个标识符 _Name。当然除了字符串之外,Groovy 也支持有符号整数、浮点数、字符等:

class Example {
    static void main(String[] args) {
        String str = "Hello";  // 字符串
        int x = 5;  // 整数
        long y = 100L;  // 长整型
        float a = 10.56f;  // 32位浮点数 
        double b = 10.5e40;  // 64位浮点数
        char c = 'A';  // 字符
        Boolean l = true;  // 布尔值,可以是true或false。
        println(str);
        println(x);
        println(y);
        println(a);
        println(b);
        println(c);
        println(l);
    }
}
 

运行结果如下:

$ groovy hello.groovy
Hello
5
100
10.56
1.05E41
A
true
 

打印变量

上面用 def 关键字来定义变量,当然也可以用一个确定的数据类型来声明一个变量,我们可以用下面的几种方式来打印变量:

class Example {
    static void main(String[] args) {
        // 初始化两个变量
        int x = 5; 
        int X = 6; 
        
        // 打印变量值
        println("x = " + x + " and X = " + X);  
        println("x = ${x} and X = ${X}");
        println('x = ${x} and X = ${X}');
    }
}
 

运行结果如下:

$ groovy hello.groovy
x = 5 and X = 6
x = 5 and X = 6
x = ${x} and X = ${X}
 

从这里我们可以看出 Groovy 在单引号的字符串里面是不支持插值的,这点非常重要,很多同学在使用 Pipeline 脚本的时候经常会混淆。除此之外,还支持三引号:

class Example {
    static void main(String[] args) {
        // 初始化两个变量
        int x = 5; 
        int X = 6; 

println """
x = ${x}
X = ${X}
"""

println '''
x = ${x}
X = ${X}
'''
    }
}
 

运行结果如下:

$ groovy hello.groovy
x = 5
X = 6

x = ${x}
X = ${X}
 

可以看出 Groovy 里面三引号支持双引号和单引号两种方式,但是单引号同样不支持插值,要记住。

函数

Groovy 中的函数是使用返回类型或使用 def 关键字定义的,函数可以接收任意数量的参数,定义参数时,不必显式定义类型,可以添加修饰符,如 public,private 和 protected,默认情况下,如果未提供可见性修饰符,则该方法为 public,如下所示:

class Example {
   static def PrintHello() {
      println("This is a print hello function in groovy");
   } 

   static int sum(int a, int b, int c = 10) {
      int d = a+b+c;
      return d;
   }  
	
   static void main(String[] args) {
      PrintHello();
      println(sum(5, 50));
   } 
}
 

运行结果如下:

$ groovy hello.groovy
This is a print hello function in groovy
65
 

条件语句

在我们日常工作中条件判断语句是必不可少的,即使在 Jenkins Pipeline 脚本中也会经常遇到,Groovy 里面的条件语句和其他语言基本一致,使用 if/else 判断:

class Example { 
   static void main(String[] args) { 
      // 初始化变量值
      int a = 2
		
      // 条件判断
      if (a < 100) { 
         // 如果a<100打印下面这句话
         println("The value is less than 100"); 
      } else { 
         // 如果a>=100打印下面这句话
         println("The value is greater than 100"); 
      } 
   } 
}
 

运行结果如下:

$ groovy hello.groovy
The value is less than 100
 

循环语句

除了条件判断语句之外,循环语句也是非常重要的,Groovy 中可以使用三种方式来进行循环:while、for语句、for-in语句,如下:

class Example {
   static void main(String[] args) {
      int count = 0;
      println("while循环语句:");
      while(count<5) {
         println(count);
         count++;
      }

      println("for循环语句:");
      for(int i=0;i<5;i++) {
	     println(i);
      }

      println("for-in循环语句:");
      int[] array = [0,1,2,3]; 
      for(int i in array) { 
         println(i); 
      } 

      println("for-in循环范围:");
      for(int i in 1..5) {
         println(i);
      }
   }
}
 

运行结果如下:

$ groovy hello.groovy
while循环语句:
0
1
2
3
4
for循环语句:
0
1
2
3
4
for-in循环语句:
0
1
2
3
for-in循环范围:
1
2
3
4
5
 

上面是常用的三种循环方式,其中一个比较特殊的地方是我们可以用..来定义一个数据范围,比如1:5表示1到5的数组。

另外我们还可以使用for-in来循环 Map,Map(字典)是我们在编写程序的过程中会镜像使用到的数据结构,大部分的编程语言都是使用{}来定义 Map,而在 Groovy 中有点不一样的地方,是使用[]来定义的 Map,如下所示:

class Example {
   static void main(String[] args) {
       // 定义一个Map
      def ageMap = ["Ken" : 21, "John" : 25, "Sally" : 22];
		
      for(am in ageMap) {
         println(am);
      }
   }
}
 

运行结果如下:

$ groovy hello.groovy
Ken=21
John=25
Sally=22
 

除了上面这些最基本的特性外,Groovy 还支持很多其他的特性,比如异常处理、面向对象设计、正则表达式、泛型、闭包等等,由于我们这里只是为了让大家对 Jenkins Pipeline 的脚本有一个基本的认识,更深层次的用法很少会涉及到,大家如果感兴趣的可以去查阅官方文档了解更多信息

 

标签:Groovy,groovy,教程,4.3,int,static,println,hello
From: https://www.cnblogs.com/david-cloud/p/18291610

相关文章

  • legged gym(包含isaac gym)丝滑安装教程
    LeggedGym(包含IsaacGym)安装教程——Ubuntu22.04安装IsaacGym安装leggedgym2.1.安装pytorch和cuda:2.2.安装rsl_r2.3.安装legged_gym参考了官方包括网上一堆教程,结合自己遇到的坑,整理了一个比较顺畅的流程,基础环境(例如miniconda或者CUDA)配好的情况下按照本教程......
  • KVM虚拟机VFIO显卡直通教程 - 支持笔记本, 无需外接设备!
    相信大家在使用linux时,时常因为不能运行windows应用感到困扰(例如各种游戏).尽管已经有wine、proton等兼容工具来解决这个问题,但是仍然有可能遇到问题.而在各种解决方案中,在虚拟机中运行windows应用显然是兼容性最好的一种方案.为了在虚拟机中得到优秀的图形性能,可以选择......
  • 无痛从pycharm转到vscode学习 vscode小白新手教程/创建文件/
    前提:之前用的是pycharmpython3.8 1、安装VScode链接:夸克网盘链接:https://pan.quark.cn/s/da4d566aa64b提取码:T7Hz1.1安装python扩展        在右边的插件里面搜索python2.1在桌面创建一个文件夹通过vscode--文件导入2.2创建py文件直接将文件名后缀改......
  • K8S学习教程(三):在PetaExpress KubeSphere 容器部署 Wiki 系统 wiki.js 并启用中文全
      背景wiki.js是非常优秀的开源Wiki系统,尽管在与xwiki功能相比,还不算完善,但也在不断进步。常用的功能还是比较实用的,如:Wiki写作、分享、权限管理功能还是非常实用的,UI设计非常的漂亮,精美的界面和直观的操作体验,能够满足小团队的基本知识管理需求。认真阅读......
  • 系统架构设计师教程 第二章 计算机系统基础知识-2.3计算机软件
    系统架构设计师教程第二章计算机系统基础知识-2.3计算机软件2.3计算机软件2.3.1计算机软件概述2.3.2操作系统2.3.2.1操作系统的组成2.3.2.2操作系统的作用2.3.2.3操作系统的特征2.3.2.4操作系统的分类2.3.3数据库2.3.3.1关系数据库2.3.3......
  • DevExpress WinForms中文教程 - 如何在Grid控件中集成语义相似性搜索?
    许多用户都知道Microsoft的DanielRoth和SteveSanderson引入的.NET智能组件——AI驱动的UI控件,许多人都喜欢这个控件原因归结为以下几点:由于它的简单性,开发人员可以在本地“驾驭AI”,而无需获得Azure或OpenAIPhD-智能功能使用单个NuGet包即可使用。“智能搜索”是通过本地嵌......
  • 阿里巴巴ice(飞冰)教程
    介绍:ice 又名,飞冰。海量可复用物料,通过GUI工具极速构建中后台应用。是阿里巴巴前端团队最近开源的一个产品,仅仅一天的时间,就收到了2800多个star。本文介绍它的一些简单用法。 飞冰的特点:海量高质量物料,每周有新增,专业视觉设计,海量物料满足你开发之所需。 GUI工具:......
  • Vue开发环境搭建教程
    在搭建Vue开发环境时,通常需要遵循一系列步骤来确保环境配置正确且高效。以下是一个详细的步骤指南,用于在Windows系统上搭建Vue开发环境:一、安装Node.js下载Node.js:访问Node.js官网(https://nodejs.org/zh-cn/)下载适合您操作系统的Node.js安装包。安装Node.js:双击下载的......
  • WebUi爬虫自动化测试 Selenium4.X+Java教程
    为什么要学习Selenium自动化测试Selenium是最受欢迎的Web应用程序自动化测试工具之一。通过学习Selenium,可以编写自动化测试脚本,用于自动执行各种任务,例如验证功能、测试用户界面、模拟用户交互大大提高测试效率,减少手动测试的工作量。网络爬虫Selenium可以用......
  • ChatGPT教程
    ChatGPT是由OpenAI开发的一种大型语言模型,基于GPT(生成预训练变换模型)架构。它能够理解和生成自然语言,因此可以用于各种文本相关的任务。ChatGPT用途:1.回答问题2.提供建议3.写作和创作4.翻译语言5.学习和教育6.对话和陪伴7.编程帮助8.生成内容9.个人助理如何使......