就懒得分P了,直接放一篇文章里吧
接触Groovy大概一个月了,刚开始为它的简洁语法感到兴奋,不过随着深入使用,发现还是有一点问题的,一个是性能问题,一个是Debug单步执行的时候代码闭包产生的顺序混乱问题,还有语法检验变弱导致代码中容易埋下异常。
自己也是初学,错漏之处还请及时指出
另外iteye的code标签什么时候能支持Groovy呢
不过一切对于Groovy带来的新语法特性来说还是非常划算的
弱类型:
Groovy一个特点是弱类型的支持,def定义的元素可以是一个int,可以是一个String,可以是一个复杂对象,甚至可以是一个方法名,并且可以轻松的切换。强制类型转换除了java自身提供的
(String)strObj
这种形式以外,还提供了as语法:
strObj as String
这种方法给我的感觉就是少写几个括号吧
字符串:
GString是Groovy的一个非常大的亮点,极大简化了传统String的拼接、比较、转义、多行拼接操作
def str = 'abc'//java String
def str2 = "abc${str}"//GString,${str}就是对上面str的引用,可以简写为$str
def str3 = """hello
asdfasdf
sss"""//3个引号中间的就是换行字符串,类似于html中的pre标签,内部的换行、空格、缩进全部会原样保留
def isEqual = (str==str2)//字符串比较直接使用连等
str.matches(/\w+/)//两个/中间的可以作为正则表达式使用,在java中\w必须转义写为\\w
Array/Map/List
Groovy中的Array和List几乎可以通用,Map的使用也被极大简化
List<String> list = [];//List对象初始化可以用一对[]完成
list = [1,2,3,4];//数组可以直接转为List
println list[2] //List可以用数组下标的形式取值
Map<String,String> map = [:]//初始化一个Map可以用[:]的形式实现(中间是冒号),默认创建的是LinkedHashMap
map=['title':'hello','user':'user1']//Map可以以这种方式一次性赋值,在需要返回一个状态Map的时候非常有用
println map['title']//Map同样可以将key作为下标的形式取值
遍历
Groovy中可不止一个each可以遍历哦
先复习以下each表达式
//遍历一个list/array
jsonArray.each{ JSONObject item->//类型可以不写,加类型就会作强制转换,each后面不写则默认是it
println item.toJSONString();
}
//遍历一个map
map.each{key,value->//两个参数分别对应key和value(可自定义名称和类型),只写一个参数就得到了Map.Entry对象
newMap[key]=value;
}
但是在使用过程中发现each无法break和continue,在代码块内写的return更是一点用都没有,如果需要break和continue,我们可以使用find
def numbers = [1,2,3,4,5]
numbers.find{
if(it==3){//不写->表达式则默认内部元素为it
return true;//相当于break
}
return false;//相当于continue
}
这种形式的语法和jQuery的each函数非常像
如果我们要在遍历一个元素过程中需要删除本节点,Groovy也提供了一个removeAll节点
def numbers = [1,2,3,4,5,6,7,8]
numbers.removeAll{
it%2==0//不写return直接返回最后一行执行结果,所以这里等效于return it%2==0
}
//it==[1,3,5,7]
//可以看出removeAll中return true则表示移除当前节点
闭包
闭包这部分研究不是很深入,写一个demo
def connectString = { a,b->
'${a}with$b'
}
/*定义了一个connectString的闭包,可以当方法用,需要两个参数:a,b,可以定义类型,
返回类型无法定义,def connectString仅仅是定义了connectString的类型为def,而不是返回值
*/
分享到:
相关推荐
Groovy 学习笔记 Groovy 学习笔记
Groovy
Groovy学习笔记,内容如下: 1.概念 2.基本语法 3.字符串 4.集合 5.类和闭包 6.控制语句 7.操作符重载 8.I/O操作 9.高级应用 10.正则表达式
Groovy_笔记
对Groovy开发环境设置,基本语法做了简单明了的介绍
Groovy语法&Gradle配置学习笔记
groovy入门经典,groovyeclipse 插件
apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...
赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...
Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day to day work with Java It starts by introducing the key differences between Java and Groovy and how you...
groovy
groovy的帮助文档 !!!!!
Groovy轻松入门—搭建Groovy开发环境 Groovy轻松入门—搭建Groovy开发环境
Java调用Groovy,实时动态加载数据库groovy脚本,java读取mongoDB的groovy脚本,加载实时运行,热部署
groovy-2.3.6-installer windows安装版本
groovy 源码
groovy eclipse plugin2groovy eclipse plugin2groovy eclipse plugin2groovy eclipse plugin2groovy eclipse plugin2groovy eclipse plugin2groovy eclipse plugin2
什么是 Groovy? Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,...
Groovy 教程。简单的groovy教程。