一、
groovy
是什么
简单地说,
Groovy
是下一代的
java
语言,跟
java
一样
,
它也运行在
JVM
中。
作为跑在
JVM
中的另一种语言,
groovy
语法与
Java
语言的语法很相似。同时,
Groovy
抛弃了
java
烦琐的文法。同样的语句,使用
groovy
能在最大限度上减少你的击键次数——这确实是“懒惰程序员们”的福音。
二、
开发环境
1、
jdk 1.5
以上
2、
eclipse+groovy plugin
(支持
Groovy 1.5.7
)
打开
eclipse
,通过
Software Updates > Find and Install...
菜单,使用“
Search for new features to install
”
下载并安装
groovy
插件。
New
一个
远程站点
,
url
可使用
http://dist.codehaus.org/groovy/distributions/update/
,
插件名
:
Groovy plug-in
。根据需要你可以同时选择
groovy
和
grails
(后续会学习到):
三、
创建
groovy
项目
1、
新建一个
groovy
项目
New --> Project
à
Java Project
创建一个
java
项目。为了方便管理,建议在
source
中建两个
source
文件夹
java
和
groovy
,分别用于存储
java
源文件和
groovy
源文件:
2、
添加
Groovy
特性
在项目上右击,
Groovy
à
Add Groovy Nature
,这样会在项目中添加
Groovy Libraries
。
3、
添加
Groovy
类
在项目
groovy
源文件下右键,
New
à
Other
à
Groovy
à
Groovy Class
自动生成的源代码如下:
public
class
HelloWorld{
/**
*
@param
args
*/
public
static
void
main(
def
args){
//
TODO
Auto-generated
method
stub
}
}
我们在
main
方法中加一句打印语句:
println "Hello World"
4、
编译运行
groovy
类
在源文件上右键,
Compile Groovy File
,然后右键,
Run As
à
Groovy
,在控制台中查看运行结果。
实际上
groovy
语法的简练还体现在,就算整个文件中只有
println "Hello World"
这一句代码(把除这一句以外的语句删除掉吧),程序也照样能够运行。
当然,为了说明
groovy
其实就是
java
,你也可以完全按照
java
语法来编写
HelloWorld
类。
四、
Groovy
语法简介
1、
没有类型的
java
作为动态语言,
groovy
中所有的变量都是对象
(
类似于
.net framework
,所有对象继承自
java.lang.Object)
,在声明一个变量时,
groovy
不要求强制类型声明,仅仅要求变量名前使用关键字
def
(从
groovy jsr 1
开始,在以前的版本中,甚至连
def
都不需要)。
修改
main
方法中的代码:
def
var=
"hello world"
println
var
println
var.class
你可以看到程序最后输出了
var
的实际类型为:
java.lang.String
作为例外,方法参数和循环变量的声明不需要
def
。
2、
不需要的
public
你可以把
main
方法前面的
public
去掉
,
实际上
,
groovy
中默认的修饰符就是
public
,
所以
public
修饰符你根本就不需要写,这点跟
java
不一样。
3、
不需要的语句结束符
Groovy
中没有语句结束符,当然为了与
java
保持一致性,你也可以使用
;
号作为语句结束符。在前面的每一句代码后面加上
;
号结束,程序同样正常运行
(
为了接受
java
程序员的顽固习惯
)
。
4、
字符串连接符
跟
java
一样,如果你需要把一个字符串写在多行里,可以使用
+
号连接字符串。代码可以这样写:
def
var=
"hello "
+
"world"
+
",groovy!"
当然更
groovy
的写法是:
def
var=
"""hello
world
groovy!
"""
三个
”
号之间不在需要
+
号进行连接(不过字符串中的格式符都会被保留,包括回车和
tab
)。
5、
一切皆对象
听起来象是“众生平等”的味道,事实上
groovy
对于对象是什么类型并不关心,一个变量的类型在运行中随时可以改变,一切根据需要而定。如果你赋给它
boolean
,那么不管它原来是什么类型,它接受
boolean
值之后就会自动把类型转变为
boolean
值。看下面的代码:
def
var=
"hello "
+
"world"
+
",groovy!"
println
var;
println
var.
class
;
var=
1001
println
var.
class
输出结果
:
hello world,groovy!
class java.lang.String
class java.lang.Integer
var
这个变量在程序运行中
,
类型在改变。一开始给它赋值
String
,它的类型就是
String
,后面给它赋值
Integer
,它又转变为
Integer
。
6、
循环
删除整个源文件内容,用以下代码替代:
def
var=
"hello "
+
"world"
+
",groovy!"
def
repeat(val){
for
(i =
0
; i <
5
; i++){
println
val
}
}
repeat(var)
输出:
hello world,groovy!
hello world,groovy!
hello world,groovy!
hello world,groovy!
hello world,groovy!
注意循环变量
i
前面没有
def
。当然也没有
java
中常见的
int
,但如果你非要加上
int
也不会有错,因为从
Groovy1.1beta2
之后开始(不包括
1.1beta2
),
groovy
开始支持
java
经典的
for
循环写法。
此外,上面的
for
语句还可以写成:
for
(i
in
0
..
5
)
这样的结果是一样的。
7、
String
和
Gstring
除了标准的
java.lang.String
以外(用
’
号括住),
groovy
还支持
Gstring
字符串类型(用
“
号括住)。把上面的
for
循环中的语句改成:
println
"This is ${i}:${val}"
运行一下,你就会明白什么是
Gstring
。
8、
范围
这个跟
pascal
中的“子界”是一样的。在前面的
for
循环介绍中我们已经使用过的
for
(i
in
0
..
5
)
这样的用法,其中的
0
..
5
就是一个范围。
范围
是一系列的值。例如
“
0..4
”
表明包含
整数
0
、
1
、
2
、
3
、
4
。
Groovy
还支持排除范围,“
0..<4
”
表示
0
、
1
、
2
、
3
。还可以创建字符范围:“
a..e
”
相当于
a
、
b
、
c
、
d
、
e
。“
a..<e
”
包括小于
e
的所有值。
范围主要在
for
循环中使用。
9、
默认参数值
可以为方法指定默认参数值。我们修改
repeat
方法的定义:
def
repeat(val,repeat=
3
){
for
(i
in
0
..<repeat){
println
"This is ${i}:${val}"
}
}
可以看到,
repeat
方法增加了一个参数
repeat
(并且给了一个默认值
3
),用于指定循环次数。
当我们不指定第
2
个参数调用
repeat
方法时,
repeat
参数取默认值
3
。
10、
集合
Groovy
支持最常见的两个
java
集合:
java.util.Collection
和
java.util.Map
。前面所说的范围实际也是集合的一种(
java.util.List
)。
(1) Collection
Groovy
中这样来定义一个
Collection
:
def
collect
=[
"a"
,
"b"
,
"c"
]
除了声明时往集合中添加元素外,还可以用以下方式向集合中添加元素:
collect
.add(
1
);
collect
<<
"come on"
;
collect
[
collect
.
size()
]=
100
.
0
Collection
使用类似数组下标的方式进行检索:
println
collect
[
collect
.
size
()-
1
]
println
collect
[
5
]
groovy
支持负索引:
println
collect
[-
1
]
//
索引其倒数第
1
个元素
println
collect
[-
2
]
//
索引其倒数第
2
个元素
Collection
支持集合运算:
collect
=
collect
+
font-size: 10pt; color: red; font
分享到:
相关推荐
groovy基础教程源码,很全面tjureykjetyukmjyteytdeyhnjfgnjsfdghfdxhgsffgv bnvbn
groovy入门级教程,讲解挺细致。适合初学者学习,groovy入门级教程,讲解挺细致。适合初学者学习,
本教程适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java™ 开发人员。了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合、内置正则表达式和闭包。
本文适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java开发人员。了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合、内置正则表达式和闭包。编写第一个 Groovy 类,然后学习如何...
本文适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java开发人员。了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合、内置正则表达式和闭包。编写第一个 Groovy 类,然后学习如何...
Groovy的入门教程,不要任何基础。 超级容易懂
grails 的基本入门,挺不错的。其中有对 groovy语言的介绍。
Grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,并构建于Spring、Hibernate等开源框架之上,是一个高生产力一站式框架。 Grails这个独特的框架被视为是提升工程师生产效率的动态工具,因为其...
课程和教程我在业余时间尝试...课程基础知识-JavaScript Udemy基础知识Groovy基础知识-Pluralsight Groovy基础知识Go编程语言-PluralsightAngular基础知识-Pluralsight C#基础知识-Pluralsight讲解影片其他(包括...)
Elasticsearch Painless Script入门教程--示例数据。 自Elasticsearch 5.x 引入Painless,使得Elasticsearch拥有了安全、可靠、高性能脚本的解决方案。Painless是Elastic开发并做了专门的优化,相较之前的脚本更...
其实很早之前也写了一篇Gradle的基础博客,但是时间很久了,现在Gradle已经更新了很多,所以暂且结合Stduio 1.0正式版与最新的Gradle语法来详细讲解下,小伙伴们直接跟我一步步来学习吧。 什么是Gradle? Gradle是一...
匹萨的设计成为了 Java泛型的基础,马丁的 GJ(Generic Java)编译 Java 1.3开始成为了 Sun 微系统的标准编译器(尽管关闭了泛型)。我有幸能够维护这个编译 年,因此我能通过第一手经验从语言设计到语言的实现方面...
4. 全力支持已有的Maven或者Ivy仓库基础建设 5. 支持传递性依赖管理,在不需要远程仓库和pom.xml和ivy配置文件的前提下 6. 基于groovy脚本构建,其build脚本使用groovy语言编写 7. 具有广泛的领域模型支持你的构建
Gradle是以Groovy语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。上面这句话我觉得写得很官方,大家只需知道Gradle可以用来android开发中进行多个项目依赖的自动化编译脚本,知道这点...
包含《python基础教程》、《A Byte of Python》、《Head First Python》3本python经典入门书籍,方便快速的进行python编程学习
RabbitMQ很简单,官方教程也不错 很容易忘记基础知识 Snake Yaml的文档不是最好的 静态类型化Java非常适合大型项目,但要快速完成工作并不容易 选择一种语言并坚持下去是非常困难的。 对于当今的语言,有太多的工具...
Maven权威指南 Authors Tim O'Brien (Sonatype, Inc.) , John Casey (Sonatype, Inc.) , Brian Fox (Sonatype, Inc.) , Bruce Snyder () , Jason Van Zyl (Sonatype, Inc.) , Juven Xu () Abstract ...
[Linux工具快速教程][linux_tool] Done Done 2. Java 2.1. 基础 () ([备用])() 2.2. Lib/框架 Done Done 2.2.1. Spring 3. Groovy Done 4. Python 4.1. 基础 Python漫游指南(Hitchhiker's Guide to Python)//:安装...