Groovy的简单入门
分享的仅是 Groovy 皮毛,大神勿喷!
参考信息:
简介
Groovy是运行在JVM上的编程语言,说是一种运行在jvm中的动态语言,Groovy可以与Java无缝衔接互相调用,因为groovy编译出来的也是Java字节码;
Groovy也是一种脚本语言;
脚本语言目标是将应用程序连接起来实现一些繁琐、变动频繁的细节;如:copy文件、打包等等;用少量的代码,实现相当强大的功能;
Groovy的应用之: Gradle
这个构建工具就是基于Groovy来编写而成的,引入第三方库更为简洁;
开发环境的搭建
以为为Windows平台
- 当然是JDK的配置;
- 下载Groovy sdk,地址为:groovy sdk;下载好了,直接解压;
- 配置Groovy的环境变量; 建立
GROOVY_HOME
,值为上解压目录;
编辑Path追加%GROOVY_HOME%\bin
- 验证:在命令行输入:
groovy -v
提示OK,表示环境成功了;
Hello world的编写
命令行输入:groovyconsole
可进入Groovy自带的编写器,来体验一把!
如下:
Hello World当然了,我们肯定要使用 idea 这个东东;
略!
基础语法
1. 变量 OR 方法定义
使用 def
来定义变量,或者方法, 变量的定义不需要具体的类型;groovy的语句结束,不需要添加分号;程序根据上下文自动判断类型(真正的多态);
如下:
def a = 'hello'
println(a)
def fun(c) { // c 为动态类型
println(c)
}
// 创建对象:
def obj = new Object() // 跟java类似
2.方法返回值
groovy 方法的最后一行即为方法的返回值,可省略掉return 语句;
@Test
void testFunc() {
println(groovyFunc(1,2)) // 输出 1 2
}
def groovyFunc(arg1, arg2) {
println arg1
println arg2
arg1 + " " + arg2 // 最后一行是返回值
}
3.运算符重载
http://www.jianshu.com/p/d3eb904406bc
Groovy MetaClass
参考:http://www.blogjava.net/johnnyjian/archive/2010/03/19/315962.html
Metaclass就是Class的Class,Class定义了该类实例的行为,Metaclass则定义了该类及其实例的行为(http://en.wikipedia.org/wiki/Metaclass))。Groovy通过Metaclass使程序可以在运行时修改/添加类的方法、属性等(动态性)。
在Groovy中,每个Class都有一个对应的Metaclass,通过这个Metaclass可以给这个Class添加方法或属性:
示例:为String类添加新方法
String.metaClass.capitalize = { delegate[0].toUpperCase() + delegate[1..-1] }
println("very".capitalize()) // 首字母大写
Groovy 列表、映射和范围
这是Groovy最常用的了;
链接:http://www.jianshu.com/p/4f5facc8d384
Groovy 闭包
http://www.jianshu.com/p/637e4d4b65a1
应用场景:DSL(这个非常重要);
XML 处理
http://www.jianshu.com/p/695507fcc24d
脚本特性
直接运行groovy脚本 (格式:groovy 文件全路径
):
groovy在内存中编译代码并执行;
当然也可以先编译成class,通过 java 命令再运行
import java.io.*
println("Hello Groovy!")
println(new Date())
println("start copy ....")
def input = new File("C:/album_demo.mp4").newDataInputStream()
def output = new File("D:/1.mp4").newDataOutputStream()
output << input
input.close()
output.close()
println("end copy")
网友评论