iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

Kotlin Lambda 從零開始 系列

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

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

Kotlin Lambda 從零開始 Day 11:flatMap / flatten — 攤平巢狀結構

這篇文章會用 TDD 手刻 myFlatMap 和 myFlatten。當 map 的 transform 回傳的是一個集合而不是單一元素時,就需要 flat...

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

Kotlin Lambda 從零開始 Day 12:associate / associateBy / associateWith — 轉成 Map

這篇文章會用 TDD 手刻 myAssociate、myAssociateBy、myAssociateWith。前面的轉換都是 List → List,這篇開...

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

Kotlin Lambda 從零開始 Day 13:zip / unzip — 配對與拆分

這篇文章會用 TDD 手刻 myZip 和 myUnzip。zip 把兩個 List 拉鍊式合併成 Pair 的 List,unzip 把 Pair 的 Li...

2026-08-17 ‧ 由 Cash 分享
DAY 14

Kotlin Lambda 從零開始 Day 14:groupBy / groupingBy — 分組操作

這篇文章會用 TDD 手刻 myGroupBy(含兩個多載版本),再介紹 groupingBy 的 Grouping 介面概念。這是轉換篇的最後一篇 Kotl...

2026-08-18 ‧ 由 Cash 分享
DAY 15

Kotlin Lambda 從零開始 Day 15:sorted / sortedBy / sortedByDescending — 排序基礎

這篇文章會用 TDD 手刻 mySorted、mySortedDescending、mySortedBy、mySortedByDescending,搞懂 Ko...

2026-08-19 ‧ 由 Cash 分享
DAY 16

Kotlin Lambda 從零開始 Day 16:sortedWith / compareBy / thenBy — 多欄位排序

這篇文章會用 TDD 手刻 mySortedWith 和 myReversed,搞懂 Comparator 的組合方式。上一篇用 sortedBy 做單欄位排...

2026-08-20 ‧ 由 Cash 分享
DAY 17

Kotlin Lambda 從零開始 Day 17:fold / foldIndexed — 帶初始值的聚合

這篇文章會用 TDD 手刻 myFold 和 myFoldIndexed,理解聚合操作的核心模式。聚合篇從這裡開始 Kotlin ↔ C# 對照表 Ko...

2026-08-21 ‧ 由 Cash 分享
DAY 18

Kotlin Lambda 從零開始 Day 18:reduce / reduceOrNull — 無初始值的聚合

這篇文章會用 TDD 手刻 myReduce、myReduceOrNull、myReduceIndexed,理解 reduce 和 fold 的差異 Kotl...

2026-08-22 ‧ 由 Cash 分享