1,最好加上 return
groovy 方法(函数)在没有return语句的情况下,
默认把最后一条语句的求值结果作为返回值,但在带有 条件语句 的情况下
似乎有点让人迷惑,看下面的例子(判断一个对象是不是字符串):
def isString(str){
if(String.class.isInstance(str)){
"YES"
}else{
"NO"
}
}
运行脚本
println isStr("hello")
打印出(Groovy 1.6以前): null
不过在Groovy 1.6以后将会打印出 YES,
修改方案(1):
def isString(str){
String.class.isInstance(str)?"YES":"NO"
}
修改方案(2):
de isString(str){
if(String.class.isInstance(str)){
return "YES"
}else{
return "NO"
}
}
个人感觉:如果不是实在懒得敲那几个字符,最好加上return,这样也会使程序的结构更加清楚。
2,方法(函数)调用的形式:
//第二个参数是一个函数
def static func(arg,callback){
callback(arg)
}
运行下面的三行语句
func("hello",{println it})
func("hello"){println it}
func "hello",{println it}
都会打印出:hello
调用一个方法(函数)就有三种方式,
我不讨论那种方式比较好,
但总感觉第二种调用方式怪怪的。。
看来Groovy的代码风格更是会千差万别了。
3,def 关键字
def 关键字用来定义方法,属性和本地变量。
def 定义的方法 默认 为 public java.lang.Object ×××()
如:
def func(){...}
对应的java方法为
public java.lang.Object func()
def定义的属性和本地变量 默认 为 null,赋值之后为
指向具体的对象。
4,Groovy不支持的一些java特性
(1)Groovy 不支持 内部类
(2)Groovy 不支持 java创建数组的方式
如 def ints = new int[]{1,2,3},
暂列两条。。
分享到:
相关推荐
《Groovy in Action》这本书由Dierk König与Andrew Glover、Paul ...总之,《Groovy in Action》是一本内容丰富、涵盖广泛的知识点的书籍,无论是Groovy初学者还是有经验的开发者,都能从中获得有价值的见解和知识。
标题和描述中提到的“groovy program”、“Programming Groovy 2”和“groovy”...此外,书中对于Groovy在现代软件开发中的应用提供了深刻的见解和大量的实用指导,使其成为Java开发者技术栈中不可多得的一本参考书。
### 关于《Programming Groovy 2》的知识点详解 #### 一、Groovy语言概述 Groovy是一种基于Java平台的动态编程语言,它为开发者提供了一种简洁且强大的语法结构来构建应用程序。Groovy的设计旨在与Java代码无缝...
这篇名为"热切推荐对groovy感兴趣看这位老兄的blog"的文章,虽然描述部分为空,但从标题可以看出,它可能是博主分享的一系列关于Groovy技术的文章链接。在ITeye博客平台上,博主key232323分享了他们的见解和经验,这...
一方面,它为读者推荐了一些实用的Groovy插件,这些插件可以帮助开发者扩展Groovy的功能,提高开发效率;另一方面,通过新闻摘要的形式,介绍了近期Groovy领域的最新发展,包括新版本发布、社区活动等,让读者及时...
- **附录A:安装与文档**:提供了关于Groovy及其相关工具的安装指南,以及获取文档资源的途径。 - **附录B:Groovy语言信息**:总结了Groovy的核心语言特性。 - **附录C:GDK API快速参考**:提供了GDK API的简明...
根据给定的文件信息,我们可以总结出以下几个...以上内容综合起来,Groovy Magazine 2011年11月期为读者提供了关于Groovy语言的深入见解和技术指导,无论是对于初学者还是有经验的开发者来说,都是非常有价值的资源。
4. **参与社区**:加入Groovy相关的论坛或社区,与其他开发者交流,获取更多关于Groovy的见解和技巧。 总之,通过"Mahi-Shared-Lib-Groovy"项目,我们可以深化对Groovy语言的理解,特别是其在构建共享库中的应用。...
"保持联系"可能暗示了该项目维护者鼓励用户参与讨论、提出问题或分享自己的见解,以促进共同学习和进步。而"执照"信息指出这个项目使用了某种开源许可,比如2.0版本的许可证,意味着任何人都可以自由地使用、分发和...
《Pro Spring 4th》是一本关于Spring技术套件的权威指南,涵盖了Spring框架的最新特性。本书不仅介绍了Spring的基础和核心主题,还分享了作者在远程通信、Hibernate以及EJB方面的见解和实践经验。本书不仅提供了...
借助现代技术的力量,我们可以更深入地了解托勒密时代的知识体系,发现隐藏在历史文本中的新见解,推动历史研究的边界。 总的来说,托勒密项目是数字人文领域的一个典范,它展示了如何结合现代编程语言和技术,来...
4. **数据分析**: 分析Jenkins配置文件,可能涉及到解析XML或Groovy DSL格式的文件,提取出构建历史、作业依赖等信息,进行统计和分析。 5. **图形化表示**: 使用图表来呈现数据,可能包括条形图(显示各项目构建...
- JavaOne是全球最大的Java开发者大会,Jason Lee的记录提供了关于该年度大会的见解,包括最新的技术趋势、演讲和演示,这对于了解当年Java社区的发展方向至关重要。 3. **Swing, RIA and JavaFX**: - Sun的高级...
为了进一步丰富知识点,我们还可以补充关于Gradle的一些额外信息。Gradle是一个开源的项目自动化构建工具,基于Apache Ant和Apache Maven概念,由基于Groovy语言的Domain Specific Language(DSL)来驱动。它使用了...
Ratpack是一个基于Java和Groovy语言的现代Web开发框架,它强调简洁性、性能以及对异步编程的支持。 #### 二、Ratpack的核心特点 - **简洁性**:Ratpack的设计理念之一就是保持代码尽可能简洁明了。通过使用流和...
"sun"包在早期的Java版本中包含了Java核心库的实现,包括一些敏感的系统功能和内部API,这些API通常是不推荐公开使用的,因为它们可能会随着版本的更新而改变。 在Java 7中,"sun"包的源码提供了以下关键领域的见解...
尽管反编译可能无法完全还原原始代码,特别是当源代码经过混淆处理时,但它仍然能提供有价值的见解。 JAD是较早且知名的Java反编译器,它支持命令行界面和图形用户界面,方便开发者使用。它的优点在于对Java 5及...
2. **技术趋势**:2008年的Java世界可能正关注JVM语言的崛起,如Groovy和Scala,它们在某些场景下提供了比Java更简洁、更强大的表达能力。此外,也可能探讨JavaFX,一种用于创建桌面和Web应用程序的富客户端平台。 ...