詳解使用 gradle 構建您的 Android 專案 (F)
我們看一個閉包應用的示例,這裡我們定義一個閉包 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 作用了。
