Groovy基础

关于Groovy

什么是 Groovy?

Groovy 是 JVM 的一个替代语言 —替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。目前的 Groovy 版本是 1.5.4,在 Java 1.4 和 Java 5 平台上都能使用,也能在 Java 6 上使用。

Groovy 的一个好处是,它的语法与 Java 语言的语法很相似。虽然 Groovy 的语法源于 Smalltalk 和 Ruby 这类语言的理念,但是可以将它想像成 Java 语言的一种更加简单、表达能力更强的变体。(在这点上,Ruby 与 Groovy 不同,因为它的语法与 Java 语法差异很大。)

许多 Java 开发人员非常喜欢 Groovy 代码和 Java 代码的相似性。从学习的角度看,如果知道如何编写 Java 代码,那就已经了解 Groovy 了。Groovy 和 Java 语言的主要区别是:完成同样的任务所需的 Groovy 代码比 Java 代码更少。(有时候会少很多!)

Groovy 快捷方式

开始使用 Groovy 时,您会发现它使日常的编程活动变得快了许多。完成本教程之后,您会了解更多的 Groovy 语法快捷方式。不过现在只需知道以下这些要点:

  • Groovy 的松散的 Java 语法允许省略分号和修改符。
  • 除非另行指定,Groovy 的所有内容都为 public
  • Groovy 允许定义简单脚本,同时无需定义正规的 class 对象。
  • Groovy 在普通的常用 Java 对象上增加了一些独特的方法和快捷方式,使得它们更容易使用。
  • Groovy 语法还允许省略变量类型。

Groovy 的新增特性

虽然 Groovy 允许省略 Java 语法中的一些元素,但也增加了一些新特性,例如本地集合、内置的正则表达式和闭包。在标准的 Java 代码中,如果想要创建一个项列表,首先要导入 java.util.ArrayList,然后程序化地初始化 ArrayList 实例,然后 再向实例中添加项。在 Groovy 中,列表和映射都内置在语法中 — 无需导入任何内容。正则表达式也不需要额外的导入或对象;它们可以通过特殊的 Groovy 语法来创建。


Groovy初探

用 Groovy 编写的 Hello World

就像前面提到过的,Groovy 支持松散的 Java 语法 — 例如,不需要为打印 “Hello World!” 这样的简单操作定义类。

而且,Groovy 使日常的编码活动变得更容易,例如,Groovy 允许输入 println,而无需输入 System.out.println。当您输入 println时,Groovy 会非常聪明地知道您指的是 System.out

所以,用 Groovy 编写 Hello World 程序就如下面这样简单:

println "Hello World!"

请注意,在这段代码周围没有类结构,而且也没有方法结构!我还使用 println 代替了 System.out.println

运行 Groovy 示例

假设我将代码保存在文件 MyFirstExample.groovy 内,只要输入以下代码就能运行这个示例:

c:>groovy MyFirstExample.groovy

在控制台上输出 “Hello World!” 所需的工作就这么多。

快捷方式应用

您可能注意到了,我不必编译 .groovy 文件。这是因为 Groovy 属于脚本语言。脚本语言的一个特点就是能够在运行时进行解释。(在 Java 中,要从源代码编译生成字节码,然后才能进行解释。区别在于脚本语言能够直接 解释源代码。)

Groovy 允许完全省略编译步骤,不过仍然可以 进行编译。如果想要编译代码,可以使用 Groovy 编译器 groovyc。用 groovyc 编译 Groovy 代码会产生标准的 Java 字节码,然后可以通过 java 命令运行生成的字节码。这是 Groovy 的一项经常被忽略的关键特性:用 Groovy 编写的所有代码都能够通过标准 Java 运行时编译和运行。

时间: 2025-01-02 06:04:27

Groovy基础的相关文章

Gradle+Groovy基础篇

在Java项目中,有两个主要的构建系统:Gradle和Maven.构建系统主要管理潜在的复杂依赖关系并正确编译项目.还可以将已编译的项目以及所有资源和源文件打包到.war或.jar文件中.对于简单的构建,Maven和Gradle之间的选择几乎是个人喜好之一,或者也许是公司CTO或技术经理的偏好.他们俩都是非常好的构建工具.但是,对于更复杂的项目,Gradle比Maven更胜一筹. Gradle构建的利与弊 个人喜欢Gradle:我讨厌XML,复杂的Java/Groovy项目,如果没有Gradle

Groovy基础——MetaClass详解

一.拦截方法调用和参数获取 示例1: class MyClass{  def hello(){   'invoked hello directly'  }  def invokeMethod(String name, Object args){   return "unknown method $name(${args.join(', ')})"  } } def mine= new MyClass() assert mine.hello() == 'invoked hello dir

3.Groovy基础语法介绍

1.变量申明 访问修饰符 def:相当于局部变量 ext:相当于全局变量 申明变量: // groovy是一种规则非常松的语言,所有语句后面不用写分号, // 而且类型不用写也是可以的 def int x = 1 def x = 1 2.字符串 Groovy 提供了多种表示 String 字面量的方法,在 Groovy 中字符串可以用单引号('),双引号(“)或三引号(”“”)括起来.由双引号括起来的字符串可以对$符号进行转义,由三重引号括起来的字符串可以跨越多行. def xx = 'i ha

2-2 groovy基础知识-理论介绍

原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/10072587.html

Android studio:Groovy 与 Gradle 基础【三】

转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=255064&extra=page%3D2%26filter%3Dauthor%26orderby%3Ddateline&_dsign=276e9e2e 相信看过前一篇 <Android Studio 与 Gradle 深入>的同学,有一部分就会遇到我初识 Gradle 时的困惑:代码我也依稀看得懂,但就是不知道还能这样写,为什么这样写. 问题与解决方案 回想我在

Gradle脚本基础全攻略

[工匠若水 http://blog.csdn.net/yanbober 转载请注明出处.点我开始Android技术交流] 1 背景 在开始Gradle之前请务必保证自己已经初步了解了Groovy脚本,特别是闭包规则,如果还不了解Groovy则可以先看<Groovy脚本基础全攻略>这一篇博客速成一下Groovy基础,然后再看此文即可.关于Gradle速成干货基础详情也请参考Geadle官方网站,不好意思我太Low了. Gradle核心是基于Groovy的领域特定语言(DSL,具体概念参见<

gradle 语法基础

groovy 基础语法 groovy 是基于jvm 的开发语言,既可以面对对象 也有脚本语言的特性 基本特性 属性,方法默认为public 分号可选 特性 自动数据类型 可选括号 字符串 集合 assert 语句 def value = 1 // 被识别为整型 // assert语句 且参数不需要括号 assert value == 2 def s1 = 'abc' // 单引号普通字符串 def s2 = "abc equals ${s1}" // 双引号字符串 可用${变量名} 解

Gradle 入门--只此一篇

题外话: Android的编译还要配合Prograd 是什么? 在语法上是基于Groovy语言的(Groovy 是一种基于JVM的敏捷开发语言,可以简单的理解为强类型语言java的弱类型版本),在项目管理上是基于Ant和Maven概念的项目自动化建构工具. 基础知识准备 Java基础,命令行使用基础 官方文档:https://docs.gradle.org/current/dsl/ * Gradle使用指南:* https://gradle.org/docs/current/userguide/

写完批处理脚本,再写个Gradle脚本,解放双手

前言 上一篇写个批处理来帮忙干活---遍历&字符串处理中,我们已经学习如何写批处理脚本来帮我们做一些简单的重复性工作,本篇继续来学习如何用 Gradle 写脚本,让它也来帮我们干活 Gradle 脚本 需求场景跟上一篇一样,只是需要脚本能够帮我们遍历某个目录下的文件,然后分别针对每个文件执行 java 命令,再输出新的命名格式的文件即可,因此脚本涉及的方面仍然是:文件夹的遍历操作.字符串处理.执行 java 命令.下面开始学习吧: 1. 遍历指定文件夹下的文件 1.1 files() 命令: f