下圖展示了如何從一個(gè)從可觀測(cè)源序列中創(chuàng)建只發(fā)射第一個(gè)元素的序列。
http://wiki.jikexueyuan.com/project/rxjava/images/chapter4_8.png" alt="" />
first()方法和last()方法很容易弄明白。它們從Observable中只發(fā)射第一個(gè)元素或者最后一個(gè)元素。這兩個(gè)都可以傳Func1作為參數(shù),:一個(gè)可以確定我們感興趣的第一個(gè)或者最后一個(gè)的謂詞:
下圖展示了last()應(yīng)用在一個(gè)完成的序列上來(lái)創(chuàng)建一個(gè)僅僅發(fā)射最后一個(gè)元素的新的Observable。
http://wiki.jikexueyuan.com/project/rxjava/images/chapter4_9.png" alt="" />
與first()和last()相似的變量有:firstOrDefault()和lastOrDefault().這兩個(gè)函數(shù)當(dāng)可觀測(cè)序列完成時(shí)不再發(fā)射任何值時(shí)用得上。在這種場(chǎng)景下,如果Observable不再發(fā)射任何值時(shí)我們可以指定發(fā)射一個(gè)默認(rèn)的值