详解使用 gradle 构建您的 Android 项目 (F)

我们看一个闭包应用的示例,这里我们定义一个闭包 doubleIt 其中,使用 lamda 这种表达方式大家应该不会陌生,各种语言都争先恐后来实现这种方式来表示自己也是支持函数式编程的语言,就像当下所有品牌手机都争先恐后地实现异形屏似的。好我们继续开始其实就是定义一个函数,然后将函数赋值给变量 doubleIt ,接下来看一看 applyTwice 这个函数接受 func (函数作为参数),函数作为参数或作为返回值,这一切都是高阶函数的表现。随后内容也就很容理解了。

8207483-2a05c08c82b401aa
8207483-bb86dc2ff29737e0

我们在看一典型的应用,如果您是一名前端工程师,或者您熟悉函数编程,这些代码可能对于您再熟悉不过了。 

8207483-a6a1b54ce99125b5
8207483-bcb12a6ec3db1e64

函数式编程好处,将我们工作的重点,也就是关注点从如何遍历一个集合移动我们应该关注的业务上,如何对一个一个元素进行处理。

gradle 也为我们提供简便的写法,这里看一下,这里有一个特殊  $it 代表了集合中的每一个元素。

8207483-d565d4c18549879b

我们可以 groovy 创建一个类,看一看他是什么模样,

8207483-6034745ba90d6a30

说明一点 groovy 为每个成员自动生产 getter 和 setter 方法,所以我们直接赋值即可。

8207483-b865a65ca18937ca
8207483-c8bd26f7ac75af4c

我们可以将一个类指定为闭包的代理,这样闭包就可以调用这个类的方法。这里随后给大家细细分享,这也是 gradle 的特点之一。

8207483-a0e35fa613a0ab57

我们每一个build.gradle 文件为一个工程 project,其中会包含许多任务,任务会去做些事,完成一个小目标,为我们最终构建项目迈出一小步。

8207483-2fa546bd43458f2e

我们来写第一个任务,task 一看就知道他是一个闭包。

8207483-18c525391ccbfd1e

运行一下 gradle(命令) hello(任务名)我们就可以执行这个任务。 

8207483-0165ac83a77f44a0

task 中有两个方法 doLast 和 doFirst  让我们可以任务中顺序地执行一些操作。

8207483-05c675a82603617d
8207483-b4b6f62deda08bc2

大家发现了吧,hello world 出现配置中,而 doLast和doFirst 是有一定顺序地输出内容到控制台。

8207483-036e7bcf1290b272
8207483-18250eaedb2ca2d1

我们也可以通过对 group 赋值来对任务进行分组,使用 description 方法让我们对任务进行一些说明

8207483-1da40239998c7386
8207483-28288647d197a89a

看下图我们就很清楚知道 group 和 description 作用了。

8207483-5aa2afb4cfac9b50

猜你喜欢

转载自blog.csdn.net/weixin_34092455/article/details/87340126