我们看一个闭包应用的示例,这里我们定义一个闭包 doubleIt 其中,使用 lamda 这种表达方式大家应该不会陌生,各种语言都争先恐后来实现这种方式来表示自己也是支持函数式编程的语言,就像当下所有品牌手机都争先恐后地实现异形屏似的。好我们继续开始其实就是定义一个函数,然后将函数赋值给变量 doubleIt ,接下来看一看 applyTwice 这个函数接受 func (函数作为参数),函数作为参数或作为返回值,这一切都是高阶函数的表现。随后内容也就很容理解了。
我们在看一典型的应用,如果您是一名前端工程师,或者您熟悉函数编程,这些代码可能对于您再熟悉不过了。
函数式编程好处,将我们工作的重点,也就是关注点从如何遍历一个集合移动我们应该关注的业务上,如何对一个一个元素进行处理。
gradle 也为我们提供简便的写法,这里看一下,这里有一个特殊 $it 代表了集合中的每一个元素。
我们可以 groovy 创建一个类,看一看他是什么模样,
说明一点 groovy 为每个成员自动生产 getter 和 setter 方法,所以我们直接赋值即可。
我们可以将一个类指定为闭包的代理,这样闭包就可以调用这个类的方法。这里随后给大家细细分享,这也是 gradle 的特点之一。
我们每一个build.gradle 文件为一个工程 project,其中会包含许多任务,任务会去做些事,完成一个小目标,为我们最终构建项目迈出一小步。
我们来写第一个任务,task 一看就知道他是一个闭包。
运行一下 gradle(命令) hello(任务名)我们就可以执行这个任务。
task 中有两个方法 doLast 和 doFirst 让我们可以任务中顺序地执行一些操作。
大家发现了吧,hello world 出现配置中,而 doLast和doFirst 是有一定顺序地输出内容到控制台。
我们也可以通过对 group 赋值来对任务进行分组,使用 description 方法让我们对任务进行一些说明
看下图我们就很清楚知道 group 和 description 作用了。
网友评论