上手 Kotlin 開發系列之集合操作符 (1)

本節通過 RxJava 的集合操作引入 Kotlin 的集合操作符。

如果大家有用過 RxJava 一定對操作符的概念並不陌生,RxJava 允許我們對數據做一系列的鏈式調用,在每一步中改變數據的格式,最終得到我們想要的數據。Kotlin 中原生的爲集合添加了海量的操作符,基本上 RxJava 有的操作符 Kotlin 都會有語言層面的支持。

先用 RxJava 實現一段鏈式調用,後面再使用 Kotlin 的集合操作符完成相同的操作,來對比下兩種語法實現上的效果會有怎樣的差別。

RxJava 示例

示例中,包含一個 String 類型和一個 Integer 類型的數據,目的是通過 Integer 數組中的 index 順序拼接 String 數組的內容。先把整體的代碼結構附上,之後拆解開分析:

首先通過 flatMap 做一次形變,flatMap 允許你傳入一個集合類型的數據源,之後可以將這些集合類型的數據源拆散成一個一個的數據返回,比如示例中返回的是一個 Integer 值,之後後續操作將對它做單個調用。

接下來,只有當這個 Integer 值小於數組 a 的長度時該值纔會返回否則就會被過濾掉。示例中數組長度爲 8,也就是 >= 8 的值都會被過濾。

map 能夠將傳入的類型轉換爲另外一種類型輸出。示例中,將傳入的 integer 轉換 a 中對應的 String 類型。也就是去取 a 中對應位置的字符串。

reduce 表示一次合併操作,實際上就是兩個元素合併成一個元素返回,它的前兩個泛型參數即爲輸入的待合併的兩個參數類型,第三個泛型參數表示輸出類型。示例中就是將兩個 String 拼接輸出。

最後訂閱輸出並拼接結果:

來看下運行結果:

以上就是本節內容,歡迎大家關注~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章