Kotlin 标准库:完整概述

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 Kotlin 标准库?

Kotlin 标准库 (kotlin-stdlib) 是一组随语言一起提供的模块,为开发者提供日常任务的现成解决方案。与 Java 不同,在 Java 中许多事情需要手动编写或引入第三方库,而 Kotlin 提供了强大的内置工具来处理集合、字符串、流、协程和序列化。该库与 Java 完全兼容,同时扩展了其功能,使代码更加简洁和安全。



标准库的主要模块

  • kotlin-stdlib — 库的核心:集合、区间、序列、标准函数 (let, apply, also, run)。
  • kotlinx-coroutines — 通过协程支持异步编程。
  • kotlinx-serialization — 序列化/反序列化为 JSON、Protobuf 及其他格式。
  • kotlin-test — 单元测试工具。
  • kotlin-reflect — 反射和运行时类型操作。


集合与序列

Kotlin 最强大的地方之一是对集合的处理。该库提供了可变 (mutable) 和不可变 (immutable) 集合。所有基本操作(过滤、转换、分组)都以扩展函数的形式实现。



示例:列表操作

val numbers = listOf(1, 2, 3, 4, 5, 6)val evenSquares = numbers    .filter { it % 2 == 0 }    .map { it * it }    .sortedDescending()println(evenSquares) // [36, 16, 4]

在这个例子中,我们使用了方法链:过滤、转换和排序。所有操作都是惰性执行的,直到调用终端操作(本例中为打印)。对于大型数据集,建议使用 Sequence。



用于惰性计算的序列

val largeList = (1..1_000_000).toList()val result = largeList.asSequence()    .filter { it % 2 == 0 }    .map { it * 2 }    .take(10)    .toList()println(result) // [4, 8, 12, 20, 24, 28, 32, 36, 40]

与普通集合不同,Sequence 不会创建中间列表,从而在处理大量数据时节省内存。



协程:无痛的异步编程

kotlinx-coroutines 模块是 Kotlin 中处理异步代码的标准方式。它取代了回调和 RxJava,提供了简单的顺序语法。



简单的协程示例

import kotlinx.coroutines.*

fun main() = runBlocking { val result = async { delay(1000L) "完成!" } println("等待中...") println(result.await()) // 1秒后输出 "完成!"}

关键概念:

  • runBlocking — 阻塞当前线程直到协程完成(用于 main 函数)。
  • async — 启动一个协程并返回 Deferred(类似于 Future)。
  • await — 挂起协程直到获取结果。


结构化并发

fun main() = runBlocking {    launch {        repeat(3) { i ->            delay(500L)            println("任务 $i 完成")        }    }    println("主协程继续运行")}

得益于结构化并发,所有子协程在父协程完成时自动结束。这防止了内存泄漏并使代码可预测。



数据序列化 (kotlinx.serialization)

kotlinx-serialization 模块允许将 Kotlin 对象转换为 JSON、XML、Protobuf 等格式,而无需使用反射。序列化在编译阶段进行,使其快速且安全。

推荐