上篇博客我們聊了observe()、map()、filter()延展函數(shù)的具體實(shí)現(xiàn)方式以及使用方式。我們?cè)谥暗牟┛椭幸呀?jīng)聊過,Signal的主要功能是位于SignalProtocol的協(xié)議延展中的,而且延展函數(shù)是非常的多的。今天博客中我們繼續(xù)來聊SignalProtocol中那些比較核心的延展實(shí)現(xiàn)。本篇博客我們就來聊一下take()函數(shù)的使用以及實(shí)現(xiàn)方式,并且再聊一下Signal中collect()的相關(guān)實(shí)現(xiàn)。

 

一、take(first)

本部分我們就來聊一下take(first)的使用方式以及具體的實(shí)現(xiàn)方式。與上篇博客的套路類似,我們聊完代碼后,依然會(huì)給出take(first)函數(shù)的運(yùn)作方式。如果你看過上篇博客的內(nèi)容的話,那么take(first)方法是比較好理解的。因?yàn)?span style="margin: 0px; padding: 0px; color: rgb(255, 0, 0);">take(first)也是可以鏈?zhǔn)桨l(fā)展的,并且使用時(shí)的整體結(jié)構(gòu)與map()filter()方法差不多,只不過后兩者接收的是一個(gè)閉包,而take(first)方法接收的是一個(gè)值罷了。

1、take(first)方法的使用

下方示例是ReactiveSwift官方給出的take(first)的使用示例,對(duì)其解釋如下: