概述
闭包实在是太方便和灵活了,使得我在使用它的时候信手拈来。
温馨提示,阅读本文需要您有闭包的基础知识。例如,关于闭包的定义及调用;闭包的参数、变量和返回值的作用域等一些简单的基础知识。当然,您也可以试着在阅读本文的时候,同时把上述的基础知识一并找来看,借此来相互理解和相互支持。对闭包基础阐述得最清楚的书籍是《Groovy in Action》
一.小试身手,随处可用
Java语言的编码过程中,有随处可见的我们用起来觉得别扭的地方,却又无计可施。例如,我们经常要对一系列的String进行非空判断以后再进行操作:
if(str1!=null&&!str1.trim().equals(“”))
{
……
}
if(str2!=null&&!str2.trim().equals(“”))
{
……
}
if(str3!=null&&!str3.trim().equals(“”))
{
……
}
……
Stop!我们来考虑一下闭包的解决方案吧。
来,我们先定义一个闭包,很简单。
def isNotNull = {
str,Closure closure ->
if(str!=null && !str.trim().equals(""))
{
closure.call()
}
}
很普通的
一个闭包,两个输入参数,如果没明白的话,现在就翻出闭包的基础知识看一看。
简单的闭包定义好了以后,我们就可以开始使用它了:
def str="the first closure"
isNotNull(str){
println str
}
在上面的例子中,我们小试牛刀了一次,只是判断了一下字符串abc是否为空,如果不为空就打印到控制台。比起我们上面的if语言,是不是简洁多了。
运行结果如下图:
像这样的用法,我们在编码的过程中随处可见,下面再举一个例子:
String cateType = getRequest().getParameter("cateType");//1: 确认存储 2:反确认
String cateId = getRequest().getParameter("cateId");
String year = getRequest().getParameter("year");
String percent = getRequest().getParameter("percent");
不错,这是一段获取
request
参数的代码。我们在写这样的代码的时候,多了就会郁闷,我老是先要
getRequest
,
然后
getParameter
,
重复的同样的锻炼我们的盲打能力。
Stop
!我们来使用闭包减轻我们的打字频率吧。
同样,先是定义一个闭包:
def getReqParam = {
paramName ->
return getRequest().getParameter(paramName)
}
那么,上面的代码,我们可以写成下面的样子:
String cateType = getReqParam("cateType");//1: 确认存储 2:反确认
String cateId = getReqParam("cateId");
String year = getReqParam("year");
String percent = getReqParam("percent");
怎么样
,
是不是简洁多了?
最后
以上就是搞怪八宝粥为你收集整理的Groovy探索---闭包(一)的全部内容,希望文章能够帮你解决Groovy探索---闭包(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复