关于 Groovy 的一些见解

本文探讨了Groovy编程中的一些实用技巧,包括明确使用return语句的重要性、不同方法调用形式的对比、def关键字的用途以及Groovy不支持的某些Java特性。

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

暂列两条。。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值