iT邦幫忙

kotlin讀書會相關文章
共有 64 則文章
鐵人賽 Software Development DAY 13

技術 第十三天:Collection 操作之截取

在前面的章節裡有提到如何從 Collection 裡取值,不過在該章節裡我們討論的都是如何取「單一」值,但實務上常常要取的是多個值或是一段範圍的值,這時就要使用...

鐵人賽 Software Development DAY 21

技術 第二十一天:Collection 操作之聚合

在做 Collection 操作時,還有一個很常見的情境,就是要將 Collection 內所有元素做運算,最後回傳「一個值」,這種操作我們就統一稱做聚合(Ag...

鐵人賽 Software Development DAY 29

技術 第二十九天:活用 Collection - Scope Function

前面的章節從 Collection 的基礎語法到核心程式碼都看了一輪,接下來想討論一下 Collection 可以如何活用? 我們之所以用 Collection...

鐵人賽 Software Development DAY 22
Coroutine 停看聽 系列 第 22

技術 Day22:Hot Flow - SharedFlow (Part II)

昨天我們使用了 shareIn 將 Flow 轉成 SharedFlow, 我們來研究一下這個函式。 public fun <T> Flow<...

鐵人賽 Software Development DAY 20

技術 第二十天:Collection 操作之轉換

在處理資料的時候,我們常常會先把 Collection 裡的資料取出後,再逐一轉換成另外一個類別或格式,由於 Collection 有 Iterator 的特點...

鐵人賽 Software Development DAY 18

技術 第十八天:Collection 操作之群組

在整理資料的時候,分組也是一個很常見的需求,比方說 Collection 裡有很多字串,你想要依照字首的字母做分類,這樣的需求 Kotlin 的標準函式庫也都準...

鐵人賽 Software Development DAY 14

技術 第十四天:Collection 操作之過濾

過濾(Filtering)是 Collection 操作裡很常用的動作,這個功能一如前面幾個章節裡的範例是以 Lambda 來實作,要注意的是,這個實作並不會更...

鐵人賽 Software Development DAY 19
Coroutine 停看聽 系列 第 19

技術 Day19:Flow 準備好輸出了嗎?使用 Terminal operators 產生結果吧。

Flow 經過 Intermediate operators 將資料經過處理之後,最後一步則是要把資料輸出,而將資料輸出則是要透過 Terminal opera...

鐵人賽 Software Development DAY 27
Coroutine 停看聽 系列 第 27

技術 Day27:測試 Coroutine

Coroutine 是非同步程式的解決方案,我們將耗時的任務置放在 suspend 函式中,在正常的使用 coroutine 情況之下,這些 suspend 函...

鐵人賽 Software Development DAY 17

技術 第十七天:Collection 操作之搜尋

Collection 裡的元素一放多了,就免不了要在裡面找東西。跟過濾一樣,搜尋也是很常見的的需求,在這個章節裡就要跟大家討論一下 Collection 的搜尋...

鐵人賽 Software Development DAY 22

技術 第二十二天:Collection 差異及相互轉型

在前面的章節裡,我們討論了如何建立 Collection,以及操作它們的各種方式。Collection 裡的四大類別雖然看似相似,但實則有些微的差異。在這個章節...

鐵人賽 Software Development DAY 17
Coroutine 停看聽 系列 第 17

技術 Day17:Flow,一個非同步的資料流。 First Look

What is Flow? Flow 是用來處理非同步的資料流的一種方式,它會按照發射 (emit) 的順序來執行。 An asynchronous data...

鐵人賽 Software Development DAY 12
Coroutine 停看聽 系列 第 12

技術 Day12:內建的 suspend 函式,好函式不用嗎?(1)

Coroutine 的三大要素不知道大家還記得嗎?CoroutineScope、Suspend function、Dispatchers。 CoroutineS...

鐵人賽 Mobile Development DAY 19

技術 模型設計的第十九天:問答聊天室結構

為了避免像上次一樣白做工的情形,今天和老姐進行了問答聊天室結構的討論。 「什麼時候建立連線?」老姐提問。「是玩家進到挑戰題目頁面,還是打開 App 期間一直連線...

鐵人賽 Software Development DAY 20
Coroutine 停看聽 系列 第 20

技術 Day20:Flow 想在其他的執行緒執行,可以嗎?

Flow 是屬於 coroutine 範圍項目,coroutine 中一個重要的特點可以輕易的切換執行緒,在 Flow 也有這項功能嗎? 我們知道要在 Coro...

鐵人賽 Software Development DAY 9
Coroutine 停看聽 系列 第 9

技術 Day9:Job vs SupervisorJob

還記得launch 的回傳值是 Job 嗎?我們可以使用 job 的 cancel() 來取消該 Coroutine。不知道你有沒有想過 Job 是什麼東西呢?...

鐵人賽 Software Development DAY 18
Coroutine 停看聽 系列 第 18

技術 Day18:Flow 的中間運算子,資料輸出前還可以做很多事喔

我們在上一篇的文章中,介紹了 Flow 的基本概念,包括如何建立一個 Flow,以及 Flow 是一個 Cold stream,所謂的 cold stream...

鐵人賽 Software Development DAY 16

技術 第十六天:Collection 操作之檢查

Collection 裡的資料多了後,有時不免要對其中的內容做檢查,方便做邏輯判斷。在這個章節裡,就要介紹一些跟檢查有關的 Collection 操作。 是否包...

鐵人賽 Software Development DAY 24

技術 第二十四天:深入 Collection 核心 - Sequence

經過前面這麼多章的說明,大家應該已經瞭解到用 Collection 處理資料的方便之處,我們可以把要處理的資料分成多個步驟,每一個步驟做一件事,每一件事的語義和...

鐵人賽 Software Development DAY 16
Coroutine 停看聽 系列 第 16

技術 Day16:四種不同的 Channel

在上一篇文章我們建立 Channel 時,使用 Channel<E>() 來建立一個 Channel。這個方法是由 Coroutine 所提供的一個...

鐵人賽 Software Development DAY 26

技術 第二十六天:深入 Collection 核心 - 泛型

在前幾章的程式碼裡,常常會出現 <T> 這樣的標記,這個 T 代表任一型別(Type),而這個型別是可以讓外部決定的。這種標記稱為泛型(Generi...

鐵人賽 Software Development DAY 26
Coroutine 停看聽 系列 第 26

技術 Day26:Flow 的運算子 - buffer()

Flow 是依序執行的,如果使用 collect 作為終端運算子,那麼在最後就會按照每一個元素所要花費的時間一一的執行,並把結果吐出來。 如下面的範例: cla...

鐵人賽 Software Development DAY 23

技術 第二十三天:深入 Collection 核心 - Range 與 Progression

在前面的章節,我們討論的主題都是如何「應用」Collection 的各種功能,但身為一位 Kotlin 開發者,一定會好奇這些標準函式庫是怎麼實作出來的。因此,...

鐵人賽 Software Development DAY 14
Coroutine 停看聽 系列 第 14

技術 Day14:內建的 suspend 函式,好函式不用嗎? (3)

這是我們內建的 suspend 函式第三篇,讓我們看看有哪些吧: joinAll() 還記得 join() 的功能是什麼嗎?join() 可以讓目前的 cor...

鐵人賽 Software Development DAY 30
Coroutine 停看聽 系列 第 30

技術 Day30:The end is not the end

不知不覺過了三十天,在這三十天中,我們學習了 Coroutine 的每一個面向,我們知道 Coroutine 是用來解決非同步程式執行的問題,它讓我們在面對非同...

鐵人賽 Software Development DAY 21
Coroutine 停看聽 系列 第 21

技術 Day21:Hot Flow - SharedFlow

Flow 是 cold stream,只有在呼叫 Terminal operator 的時候才會執行。也就是說每一個 Flow 都只有一次性的工作,只要呼叫一次...

鐵人賽 Software Development DAY 25

技術 第二十五天:深入 Collection 核心 - 效能評估

在上一章裡我們提到 Sequence<T> 這個跟 Iterable<T> 用起來很像,但實際行為有點不同的物件。我們可以把 Itera...

鐵人賽 Software Development DAY 29
Coroutine 停看聽 系列 第 29

技術 Day29:複習 Channel、Flow

Coroutine 中如果要執行非同步程式,則需要把耗時任務寫在 suspend 函式中,並且在一個 CoroutineScope 中來執行,而建立 Corou...

鐵人賽 Software Development DAY 28
Coroutine 停看聽 系列 第 28

技術 Day28:複習 Coroutine

不知不覺來到了第28天,最後我們來做個複習吧。 Coroutine 的目的 用來解決非同步程式執行的問題,在以前面對非同步的程式時,我們可能需要建立一個新的執行...

鐵人賽 Software Development DAY 28

技術 第二十八天:深入 Collection 核心 - Extension

上一個章節我們在探索 forEach() 原始碼的時候,除了使用到泛型、Lambda、inline 等技巧外,其實還有用到 Kotlin 的 Extension...