`
步行者
  • 浏览: 169861 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

关于 Groovy 的一些见解

阅读更多

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},

暂列两条。。

 

 

 

 

分享到:
评论
6 楼 key232323 2009-08-09  
我觉得,有一段时间内,groovy的语法糖(简洁代码)更受青睐,这些细节,估计应用起来不主要吧
5 楼 步行者 2009-07-01  
fcoffee 写道
直接写
def isString(str){
	String.class.isInstance(str)
}

不就可以了吗?  何必还要绕个圈子去if(true) return true; else return false;呢

恩 ,确实
当时写这个例子的时候 ,是想让这三个例子在return的部分对比度强一些
还是换一个例子吧
4 楼 fcoffee 2009-07-01  
直接写
def isString(str){
	String.class.isInstance(str)
}

不就可以了吗?  何必还要绕个圈子去if(true) return true; else return false;呢
3 楼 步行者 2009-07-01  
JohnnyJian 写道
在Groovy 1.6之后
def isString(str){
	if(String.class.isInstance(str)){
		true
	}else{
		false
	}
}

是不会返回null的


果然 ,看来我的版本老了(groovy的eclipse插件)
2 楼 JohnnyJian 2009-07-01  
Groovy 1.7将支持内部类
1 楼 JohnnyJian 2009-07-01  
在Groovy 1.6之后
def isString(str){
	if(String.class.isInstance(str)){
		true
	}else{
		false
	}
}

是不会返回null的

相关推荐

    groovy in action.pdf

    《Groovy in Action》这本书由Dierk König与Andrew Glover、Paul ...总之,《Groovy in Action》是一本内容丰富、涵盖广泛的知识点的书籍,无论是Groovy初学者还是有经验的开发者,都能从中获得有价值的见解和知识。

    groovy program

    标题和描述中提到的“groovy program”、“Programming Groovy 2”和“groovy”...此外,书中对于Groovy在现代软件开发中的应用提供了深刻的见解和大量的实用指导,使其成为Java开发者技术栈中不可多得的一本参考书。

    Programming Groovy 2

    ### 关于《Programming Groovy 2》的知识点详解 #### 一、Groovy语言概述 Groovy是一种基于Java平台的动态编程语言,它为开发者提供了一种简洁且强大的语法结构来构建应用程序。Groovy的设计旨在与Java代码无缝...

    热切推荐对groovy感兴趣看这位老兄的blog

    这篇名为"热切推荐对groovy感兴趣看这位老兄的blog"的文章,虽然描述部分为空,但从标题可以看出,它可能是博主分享的一系列关于Groovy技术的文章链接。在ITeye博客平台上,博主key232323分享了他们的见解和经验,这...

    groovy 原版杂志 十月

    一方面,它为读者推荐了一些实用的Groovy插件,这些插件可以帮助开发者扩展Groovy的功能,提高开发效率;另一方面,通过新闻摘要的形式,介绍了近期Groovy领域的最新发展,包括新版本发布、社区活动等,让读者及时...

    Groovy in action

    - **附录A:安装与文档**:提供了关于Groovy及其相关工具的安装指南,以及获取文档资源的途径。 - **附录B:Groovy语言信息**:总结了Groovy的核心语言特性。 - **附录C:GDK API快速参考**:提供了GDK API的简明...

    Groovy Magazine 2011年11月

    根据给定的文件信息,我们可以总结出以下几个...以上内容综合起来,Groovy Magazine 2011年11月期为读者提供了关于Groovy语言的深入见解和技术指导,无论是对于初学者还是有经验的开发者来说,都是非常有价值的资源。

    Mahi-Shared-Lib-Groovy:Mahi-Shared-Lib-Groovy

    4. **参与社区**:加入Groovy相关的论坛或社区,与其他开发者交流,获取更多关于Groovy的见解和技巧。 总之,通过"Mahi-Shared-Lib-Groovy"项目,我们可以深化对Groovy语言的理解,特别是其在构建共享库中的应用。...

    levelup-groovy-examples

    "保持联系"可能暗示了该项目维护者鼓励用户参与讨论、提出问题或分享自己的见解,以促进共同学习和进步。而"执照"信息指出这个项目使用了某种开源许可,比如2.0版本的许可证,意味着任何人都可以自由地使用、分发和...

    Pro Spring 4th

    《Pro Spring 4th》是一本关于Spring技术套件的权威指南,涵盖了Spring框架的最新特性。本书不仅介绍了Spring的基础和核心主题,还分享了作者在远程通信、Hibernate以及EJB方面的见解和实践经验。本书不仅提供了...

    ptolemy:开发用于阅读托勒密的档案版本和数据集

    借助现代技术的力量,我们可以更深入地了解托勒密时代的知识体系,发现隐藏在历史文本中的新见解,推动历史研究的边界。 总的来说,托勒密项目是数字人文领域的一个典范,它展示了如何结合现代编程语言和技术,来...

    jenkins_analyzer:分析公共Github存储库中的Jenkins文件并以图表形式显示见解

    4. **数据分析**: 分析Jenkins配置文件,可能涉及到解析XML或Groovy DSL格式的文件,提取出构建历史、作业依赖等信息,进行统计和分析。 5. **图形化表示**: 使用图表来呈现数据,可能包括条形图(显示各项目构建...

    javaeye月刊2008年5月 总第3期.pdf

    - JavaOne是全球最大的Java开发者大会,Jason Lee的记录提供了关于该年度大会的见解,包括最新的技术趋势、演讲和演示,这对于了解当年Java社区的发展方向至关重要。 3. **Swing, RIA and JavaFX**: - Sun的高级...

    Gradle In Action

    为了进一步丰富知识点,我们还可以补充关于Gradle的一些额外信息。Gradle是一个开源的项目自动化构建工具,基于Apache Ant和Apache Maven概念,由基于Groovy语言的Domain Specific Language(DSL)来驱动。它使用了...

    Learning Ratpack

    Ratpack是一个基于Java和Groovy语言的现代Web开发框架,它强调简洁性、性能以及对异步编程的支持。 #### 二、Ratpack的核心特点 - **简洁性**:Ratpack的设计理念之一就是保持代码尽可能简洁明了。通过使用流和...

    java1.7源码包含sun

    "sun"包在早期的Java版本中包含了Java核心库的实现,包括一些敏感的系统功能和内部API,这些API通常是不推荐公开使用的,因为它们可能会随着版本的更新而改变。 在Java 7中,"sun"包的源码提供了以下关键领域的见解...

    简单好用的java反编译工具

    尽管反编译可能无法完全还原原始代码,特别是当源代码经过混淆处理时,但它仍然能提供有价值的见解。 JAD是较早且知名的Java反编译器,它支持命令行界面和图形用户界面,方便开发者使用。它的优点在于对Java 5及...

    java每月新闻杂志2

    2. **技术趋势**:2008年的Java世界可能正关注JVM语言的崛起,如Groovy和Scala,它们在某些场景下提供了比Java更简洁、更强大的表达能力。此外,也可能探讨JavaFX,一种用于创建桌面和Web应用程序的富客户端平台。 ...

Global site tag (gtag.js) - Google Analytics