iT邦幫忙

kotlin讀書會相關文章
共有 51 則文章
鐵人賽 Software Development DAY 18
Coroutine 停看聽 系列 第 18

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

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

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

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

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

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

技術 Day16:四種不同的 Channel

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

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

技術 Day15:Channel 的第一堂課

在前面的文章中,我們介紹了 coroutine 的基本原理,如何使用 launch 、 async 建立 CoroutineScope,如何選擇適當的調度器,讓...

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

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

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

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

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

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

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

技術 Day11:調度器(Dispatchers),我跳進來了,又跳出去了

Coroutine 一個重要的特性就是可以輕易的切換執行緒,不過 Coroutine 是使用 CoroutineDispatcher (調度器) 來切換執行緒,...

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

技術 Day10:例外處理,留下來或我跟你走

程式在執行的時候,有些時候我們會遇到一些例外的情況,我們一般會使用 try-catch 來攔截程式執行所拋出的例外,用 try-catch 攔截到之後,我們就可...

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

技術 Day9:Job vs SupervisorJob

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

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

技術 Day8:結構化併發 (Structured Concurrency)

還記得我們第一個 Coroutine 程式嗎? suspend fun showContents() = coroutineScope { launch...

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

技術 Day7:CoroutineScope:launch() 以及 async()

在前一篇文章我們知道 suspend 函式必須要在 Coroutine scope 裏面才能執行,本篇文章我們來了解一下兩個 Coroutine Builder...

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

技術 Day6:三大要素

好的好的,經過了前幾篇文章之後,想必大家應該對 Coroutine 有一些了解了吧,我在這邊快速複習一下。 Coroutine 是用來解決非同步程式的執行問題,...

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

技術 Day5:深入認識 Coroutine

這幾天我們把 Coroutine 神秘的面紗好像掀開了一點,知道他是用來解決非同步程式的問題,也我們知道四個 Coroutine 的特點。Coroutine 的...

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

技術 Day4:Coroutine 的四大特點

在前一篇文章中,我們完成了一個 Coroutine 的程式,並且在最後我們發現了兩個特點: 用 Coroutine 完成的程式碼可以讓非同步程式碼以同步的程式...

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

技術 Day3:第一個 Coroutine 程式

在上一篇文章中,我們知道如果我們要以非同步的方式來執行,可以使用 Thread + callback 來寫,不過使用 Callback 可能會發生兩個問題,一是...

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

技術 Day 1:同步與非同步執行

Hi 各位好,又到了我們一年一度的 iT邦鐵人賽的挑戰,這次我所挑戰的主題是 Kotlin 中用來處理非同步的 lib Coroutine,中文名稱「協程」,是...

技術 回顧與展望

在這 30 天的探索裡,我們從建置開發環境開始,包括安裝多個版本的 JDK、IntelliJ IDEA 及版本管理工具,為探索 Collection 做好準備。...

鐵人賽 Software Development DAY 30

技術 [Day30] 使用KorGE的開發心得

這次三十天的用KorGE開發自己的Kotlin小遊戲終於進到最終篇章囉! 相信各位對KorGE有一些些的認識,已經可以試著用這套遊戲引擎來開發你的小遊戲。 Ko...

鐵人賽 Software Development DAY 30

技術 第三十天:活用 Collection - 用 kscript 做資料處理

眾所皆知 Kotlin 是一個需要編譯的程式語言,所以每次一更動程式就必須重新編譯一次。雖然編譯式的語言對程式正確性和效能都有不錯的幫助,但假如你是拿 Kotl...

鐵人賽 Software Development DAY 29

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

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

鐵人賽 Software Development DAY 28

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

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

鐵人賽 Software Development DAY 27

技術 第二十七天:深入 Collection 核心 - Lambda

在前面一系列的 Collection 操作章節裡,你會發現只要能客製化操作行為的 method,都是透過讓你傳入一個 Lambda 的方式達成。到底什麼是 La...

鐵人賽 Software Development DAY 26

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

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

鐵人賽 Software Development DAY 25

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

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

鐵人賽 Software Development DAY 24

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

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

鐵人賽 Software Development DAY 23

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

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

鐵人賽 Software Development DAY 22

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

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

鐵人賽 Software Development DAY 21

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

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

鐵人賽 Software Development DAY 20

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

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