亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

初学者的 Groovy 脚本教程

什么是 Groovy 脚本?

Apache Groovy 是为 Java 平台构建的面向对象和 Java 语法兼容的编程语言。这种动态语言具有许多类似于 Python、Ruby、Smalltalk 和 Pero 的特性。 Groovy 源代码被编译成 Java 字节码,因此它可以在任何安装了 JRE 的平台上运行。 Groovy 还在幕后执行了许多任务,使其更加敏捷和动态。

Groovy 语言可以用作 Java 平台的脚本语言。它几乎就像是 Java 的超级版本,提供了 Java 的企业功能。它还提供了许多生产力特性,例如 DSL 支持、闭包和动态类型。与其他一些语言不同,它被设计为伴侣,而不是 Java 的替代品。

为什么选择 Groovy?

以下是您应该使用和学习 Groovy 的主要原因-

Groovy 历史

Groovy 的特点

如何安装 Groovy

步骤 1) 确保您已安装 Java。 https://www.guru99.com/install-java.html

步骤 2) 转到 http://groovy-lang.org/download.html 并点击安装程序。

注意:您还可以使用 Zip 文件或作为 Eclipse IDE 安装 Groovy。在本 Groovy 教程中,我们将坚持使用 Windows Installer

步骤 3) 启动下载的安装程序。选择语言并点击确定

第 4 步) 发射。在欢迎屏幕中,单击“下一步”

第 5 步) 同意许可条款

第 6 步) 选择要安装的组件,点击下一步

第 7 步) 选择安装目录,点击下一步

第 8 步) 选择开始菜单文件夹并点击下一步

第 9 步) 安装完成后,让路径默认并点击下一步

步骤 10) 点击下一步

步骤 11) 在开始菜单中搜索 Groovy 控制台

Groovy Hello World 示例

假设我们想用 Java 打印一个简单的字符串“Hello World”。实现字符串 Groovy hello world 的代码是

public class Demo {
    public static void main(String args[]) {
        System.out.println("Hello World");
    }
}

上述代码在 Java 和 Groovy 中都有效,因为 Groovy 是 Java 的超集。但 Groovy 的优势在于我们可以省去类创建、公共方法创建等工作,并且只需一行代码即可实现相同的输出,如下所示:

println "Hello World."

不需要分号

不需要括号

System.out.println 简化为 println

Groovy 变量

在 Java 中,静态绑定是强制性的。这意味着必须提前声明变量的类型。

public class Demo {
    public static void main(String args[]) {
        int x = 104;
        System.out.println(x);
        //x = "Guru99";
    }
}

在本 Groovy 教程的上述示例中,变量类型(整数)是使用关键字“int”预先声明的。如果要声明浮点数,请使用关键字 float。

如果您尝试将 String 值分配给 int(取消注释第 5 行),您将收到以下错误

Demo.java:5: error: incompatible types: String cannot be converted to int
x = "Guru99";

相比之下,Groovy 支持动态类型。变量是使用关键字“def”定义的,变量的类型不需要事先声明。编译器在运行时计算出变量类型,你甚至可以计算出变量类型。

考虑以下 groovy 示例,

def x = 104
println x.getClass()
x = "Guru99"
println x.getClass()

输出

class java.lang.Integer
class java.lang.String

在 Groovy 中,您可以创建多行字符串。只需确保将字符串括在三引号中即可。

def x = """Groovy
at
Guru99"""
println x

输出

Groovy
at
Guru99

注意 :您仍然可以使用 Groovy 变量类型,如 byte、short、int、long 等。但是你不能像显式声明的那样动态改变变量类型。

考虑以下代码:

int x = 104
println x
x = "Guru99"

它给出了以下错误

104
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
    at jdoodle.run(jdoodle.groovy:3)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Command exited with non-zero status 1

Groovy 运算符

运算符是告诉编译器进行某些数学或逻辑操作的符号。

Groovy 有以下五种操作符——

Groovy 循环

在 Java 中,您可以如下定义一个循环

public class Demo {
    public static void main(String args[]) {
        for (int x = 0; x <= 5; x++) {
            System.out.println(x);
        }
    }
}

输出

0
1
2
3
4

您可以使用最多关键字在 Groovy 中实现相同的输出

0.upto(4) {println "$it"}

你得到与上面相同的输出。 $it 是一个给出当前循环值的闭包。

考虑以下代码

2.upto(4) {println "$it"}

它给出了一个输出

2
3
4

您也可以使用“times”关键字来获得相同的输出

5.times{println "$it"}

考虑一下,您想在 Java 中使用 for 循环打印 0,2,4

public class Demo {
    public static void main(String args[]) {
        for (int x = 0; x <= 5; x=x+2) {
            System.out.println(x);
        }
    }
}

输出:

0
2
4

也可以使用step方法

0.step(7,2){println "$it"}

Groovy - 决策制定

语句 欺骗
if 语句 与Java一样,如果条件为真,则执行if语句。
if/else 语句 在 if/else 语句中,首先在 if 语句中评估条件。如果条件为真,则执行之后的语句。它在 else 条件之前停止并退出循环。但是,如果条件为假,则执行 else 语句块中的语句。然后退出循环。
嵌套 If 语句 当需要有多个if语句时使用它。
切换语句 当您有多个条件时,嵌套的 if-else 语句可能会变得不可读。为了使代码更具可读性,使用了 switch 语句。
嵌套切换语句 在 Groovy 中也可以使用嵌套的 switch 语句。

常规列表

列表结构允许您存储数据项的集合。在 Groovy 编程语言中,List 包含一系列对象引用。它还显示了序列中的位置。 List 字面量表示为一系列用逗号分隔并用方括号括起来的对象。

Grrovy 列表示例:

字符串列表- ['Angular', 'Nodejs,]

对象引用列表 - [‘Groovy’, 2,4 2.6]

整数值列表 - [16, 17, 18, 19]

一个空列表 - [ ]

以下是 Groovy 中可用的列表方法:

方法 说明
add() 允许您将新值附加到此列表的末尾。
包含() 如果此 List 包含某个值,则返回 true。
get() 返回确定位置的元素
isEmpty() 如果 List 不包含任何元素,则返回真值
减号() 此命令允许您创建一个由原始元素组成的新列表,不包括在集合中指定的元素。
加号() 允许您创建一个由原始元素以及集合中提到的元素组成的新列表。
pop() 从列表中删除最后一项
删除() 移除指定位置的元素
reverse() 创建一个新的 List 来反转原始 List 的元素
尺寸() 返回此列表中的元素个数
排序() 返回一个排序的副本

考虑以下 Groovy 脚本示例

def y = ["Guru99", "is", "Best", "for", "Groovy"]
println y
y.add("Learning")
println(y.contains("is"))
println(y.get(2))
println(y.pop())

输出

[Guru99, is, Best, for, Groovy]
true
Best
Learning

Groovy 地图

Map Groovy 是键值对的集合

Groovy 映射示例:

这是 Groovy 中可用的映射方法列表。

方法 说明
containsKey() 检查地图是否包含这个键?
get() 这个命令在这个Map中查找key并返回对应的值。如果您在此 Map 中没有找到任何条目,则它将返回 null。
keySet() 允许在此 Map 中找到一组键
put() 将指定的值与此 Map 中的给定键相关联。如果之前的 Map 包含此键的映射。然后旧值将被指定值替换。
尺寸() 返回键值映射的数量。
值() 此命令返回值的集合视图。

Groovy 示例:

def y = [fName:'Jen', lName:'Cruise', sex:'F']
print y.get("fName")

输出

Jen

Groovy- 闭包

groovy 闭包是一段包装为对象的代码。它充当方法或函数。

简单闭包示例

def myClosure = {
       println "My First Closure"	
}
myClosure()

输出:

My First Closure

闭包可以接受参数。标识列表用逗号分隔

一个箭头 (->) 标记参数列表的结尾。

def myClosure = {
       a,b,c->
       y = a+b+c
       println y
}
myClosure(1,2,3)

输出

6

闭包可以返回一个值。

def myClosure = {
       a,b,c->
       return (a+b+c)
}
println(myClosure(1,2,3))

输出

6

有很多内置的闭包,如“It”、“identity”等。闭包可以将其他闭包作为参数。

Groovy 对比爪哇

Groovy Java
在 Groovy 中,默认访问说明符是公共的。这意味着没有任何指定访问修饰符的方法是公共的,并且可以在类和包边界之外访问。 在Java中,默认的访问修饰符是一个包,也就是说,如果你不为字段、方法或类指定访问修饰符,它就会变成包私有的,
为类成员自动生成getter和setter。 Java,需要为字段定义getter和setter方法
Groovy 允许使用带字符串的双引号进行变量替换。 Java 不支持变量替换。
输入信息是可选的。 在 Java 中键入信息是强制性的。
Groovy 不需要以分号结尾。 在 Java 中,每条语句都以分号结尾。
Groovy 自动为每个程序提供一个名为 Script 的包装类 在 Java 中,您需要 main 方法来使类可执行。

关于 Groovy 的神话

神话 现实
我们可以使用 Groovy 来编写脚本。 它可以用于脚本。但是,除此之外,您还可以执行许多其他任务。
Groovy 是关于闭包的。 “它只是函数式编程语言。” Groovy 采用了 Lisp 或 Closure 等函数式编程语言。
如果你想做 TDD,Groovy 是一个理想的选择 这个说法是正确的。但是,这肯定不是使用 Groovy 的唯一原因。
只有在你想使用 Grails 时才能使用 Groovy。 Grails 是一个强大的Web 开发框架。

但 Groovy 提供的远不止这些。

使用 Groovy 的缺点

Groovy 工具

我们将在本 Groovy 脚本教程中讨论 3 个重要工具

1. groovysh:交互执行代码。

2. groovyConsole:交互式代码执行的GUI

3.groovy:执行groovy脚本。你可以像 Perl、Python 等一样使用它。

Groovysh

Groovy 控制台

时髦

它是执行 Groovy 程序和脚本的处理器。你

可以用来测试简单的 Groovy 表达式。

总结


java

  1. Java for 循环
  2. 构建 Raspberry Pi 机器人:初学者的最佳教程
  3. 适合初学者的 CNC 路由器
  4. Powershell 初学者教程:学习 Powershell 脚本
  5. C 编程语言 PDF:初学者基础教程
  6. Java 数组教程:声明、创建、初始化 [示例]
  7. Java 堆栈和堆:Java 内存分配教程
  8. For-Each 示例:增强 for 循环以迭代 Java 数组
  9. Java教程中的多线程与程序和示例
  10. 使用 For 循环的 JAVA 程序中的 Armstrong 数
  11. Java中使用while和for循环的回文数程序
  12. 初学者概述:什么是金属加工?