iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

Kotlin Lambda 從零開始 系列

會從零手刻一組 Kotlin Collection API,從 filter、map、fold 一路到 groupBy、flatMap 和 Sequence,手刻一次不是為了取代標準函式庫,而是把藏在 chain call 裡的所有概念拆開來看

參賽天數 18 天 | 共 18 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 1

Kotlin Lambda 從零開始 Day 01:系列導讀 — 為什麼要手刻 Collection API?

以前寫 C# 時,曾經上過 91 的 C# 進階設計課程。那時候印象很深刻的,是用重構和測試把 LINQ 相關的 API,例如 Where、Select 等這...

2026-08-05 ‧ 由 Cash 分享
DAY 2

Kotlin Lambda 從零開始 Day 02:Lambda 本質解密 — FunctionN、invokedynamic 與閉包

這篇文章會釐清 function type、FunctionN 執行期介面與 invokedynamic 產生策略的差異,再理解閉包捕獲變數的機制,最後會實作...

2026-08-06 ‧ 由 Cash 分享
DAY 3

Kotlin Lambda 從零開始 Day 03:Extension Function + 泛型 — 手刻 API 的兩大武器

這篇文章會說明 Extension Function 和泛型的運作方式,然後用這兩個工具 TDD 實作 myFilter Kotlin ↔ C# 對照表...

2026-08-07 ‧ 由 Cash 分享
DAY 4

Kotlin Lambda 從零開始 Day 04:inline 關鍵字 — 編譯期展開與使用限制

這篇文章會說明 inline 如何在編譯期展開高階函式與 Lambda,避開間接呼叫和可能的物件成本,把 myFilter 補成 inline 版本,並整理它...

2026-08-08 ‧ 由 Cash 分享
DAY 5

Kotlin Lambda 從零開始 Day 05:filter / filterNot / filterIndexed — 最基本的篩選操作

這篇文章會用 TDD 手刻 myFilterNot 和 myFilterIndexed,把 filter 系列的三個基本變體湊齊。順便從記憶體角度看看鏈式 f...

2026-08-09 ‧ 由 Cash 分享
DAY 6

Kotlin Lambda 從零開始 Day 06:first / last / single — 尋找單一元素

這篇文章會用 TDD 手刻六組函式:myFirst / myFirstOrNull、myLast / myLastOrNull、mySingle / mySi...

2026-08-10 ‧ 由 Cash 分享
DAY 7

Kotlin Lambda 從零開始 Day 07:any / all / none / count — 集合的布林判斷與計數

這篇文章會用 TDD 手刻 myAny、myAll、myNone、myCount,搞懂短路邏輯(short-circuit)和空集合的行為 Kotlin ↔...

2026-08-11 ‧ 由 Cash 分享
DAY 8

Kotlin Lambda 從零開始 Day 08:find / indexOfFirst / indexOfLast — 位置導向尋找

這篇文章會用 TDD 手刻 myFind、myFindLast、myIndexOfFirst、myIndexOfLast,再加上不帶 predicate 的...

2026-08-12 ‧ 由 Cash 分享
DAY 9

Kotlin Lambda 從零開始 Day 09:contains / elementAt — 存在性與直接存取

這篇文章會用 TDD 手刻 myContains、myElementAt、myElementAtOrNull、myElementAtOrElse,收束篩選與尋...

2026-08-13 ‧ 由 Cash 分享
DAY 10

Kotlin Lambda 從零開始 Day 10:map / mapNotNull / mapIndexed — 最核心的轉換操作

這篇文章會用 TDD 手刻 myMap、myMapNotNull、myMapIndexed,正式進入轉換篇。Lambda 的簽名從 (T) -> Boo...

2026-08-14 ‧ 由 Cash 分享