• 关于本书
    • 文档
  • 入门
  • Kotlin 之旅
  • 概述
    • Kotlin 多平台
    • Kotlin 用于服务器端开发
    • Kotlin 用于 Android 开发
    • Kotlin Wasm
    • Kotlin 原生
    • Kotlin 用于 JavaScript 开发
    • Kotlin 用于数据分析
    • Kotlin 用于竞技程序设计
  • Kotlin 的新特性
    • Kotlin 2.1.20
    • Kotlin 2.1.0
    • Kotlin 2.2.0-Beta1
    • 早期版本
      • Kotlin 2.0.20
      • Kotlin 2.0.0
      • Kotlin 1.9.20
      • Kotlin 1.9.0
      • Kotlin 1.8.20
      • Kotlin 1.8.0
      • Kotlin 1.7.20
      • Kotlin 1.7.0
      • Kotlin 1.6.20
      • Kotlin 1.6.0
      • Kotlin 1.5.30
      • Kotlin 1.5.20
      • Kotlin 1.5.0
      • Kotlin 1.4.30
      • Kotlin 1.4.20
      • Kotlin 1.4.0
      • Kotlin 1.3
      • Kotlin 1.2
      • Kotlin 1.1
  • 版本发布与路线图
    • Kotlin 路线图
    • Kotlin 语言特性与提案
    • Kotlin 演进原则
    • Kotlin 各组件的稳定性
    • Kotlin 版本发布
  • 基础
    • 基本语法
    • 习惯用法
    • 例学 Kotlin↗︎
    • 编码规范
  • 概念
    • 类型
      • 基本类型
        • 概述
        • 数字
        • 无符号整型
        • 布尔
        • 字符
        • 字符串
        • 数组
      • 类型检测与类型转换
    • 控制流程
      • 条件与循环
      • 返回与跳转
      • 异常
    • 包与导入
    • 类与对象
      • 类
      • 继承
      • 属性
      • 接口
      • 函数式(SAM)接口
      • 可见性修饰符
      • 扩展
      • 数据类
      • 密封类与密封接口
      • 泛型:in、out、where
      • 嵌套类
      • 枚举类
      • 内联类
      • 对象表达式与对象声明
      • 委托
      • 属性委托
      • 类型别名
    • 函数
      • 函数
      • lambda 表达式
      • 内联函数
      • 操作符重载
      • 构建器
        • 类型安全的构建器
        • 使用带有构建器类型推断的构建器
    • 空安全
    • 相等性
    • this 表达式
    • 异步程序设计技术
    • 协程
    • 注解
    • 解构声明
    • 反射
  • 多平台开发
    • Kotlin 多平台简介
    • 了解多平台项目结构
    • 多平台项目结构的高级概念
    • 共享代码
      • 平台间共享代码
      • 预期声明与实际声明
      • 分层项目结构
    • 添加依赖项
      • 添加依赖项
      • 添加 Android 依赖项
      • 添加 iOS 依赖项
    • 设置 iOS 集成
      • 选择集成方法
      • 直接集成
      • 远程 SPM 导出
      • CocoaPods 集成
        • CocoaPods 概述与设置
        • 添加对 Pod 库的依赖
        • 使用 Kotlin Gradle 项目作为 CocoaPods 依赖项
        • CocoaPods Gradle 插件 DSL 参考
      • 与 SPM 的本地集成
    • 编译构件
      • 配置编译项
      • 构建最终原生二进制文件
    • 发布多平台库
    • 参考
      • 多平台 Gradle DSL 参考
      • Android 源代码集布局
      • Kotlin 多平台兼容性指南
      • Android Studio 插件版本发布
  • 数据分析
    • Kotlin Notebook 入门
      • Kotlin Notebook 简介
      • 1、环境搭建
      • 2、创建第一个 Kotlin Notebook
      • 3、将依赖添加到 Kotlin Notebook
    • 分享 Kotlin Notebook
    • Kotlin Notebook 的输出格式
    • 使用数据源
      • 从文件中取数据
      • 从 web 源与 API 取数据
      • 链接数据库并从中取数据
    • Kotlin Notebook 中数据可视化
    • 用于数据分析的库
  • 平台
    • JVM
      • Kotlin/JVM 入门
      • 与 Java 比较
      • 在 Kotlin 中调用 Java
      • 在 Java 中调用 Kotlin
      • Spring
        • 使用 Spring Boot 创建用到数据库的 RESTful web 服务
          • Spring Boot 与 Kotlin 入门
          • 创建使用 Kotlin 的 Spring Boot 项目
          • 向 Spring Boot 项目添加数据类
          • 为 Spring Boot 项目添加数据库支持
          • 使用 Spring Data CrudRepository 进行数据库访问
        • Spring 框架 Kotlin 文档↗︎
        • 使用 Spring Boot 与 Kotlin 构建 web 应用程序——教程↗︎
        • 使用 Kotlin 协程与 RSocket 创建聊天应用程序——教程↗︎
      • 在 JVM 平台中用 JUnit 测试代码——教程
      • 在项目中混用 Java 与 Kotlin——教程
      • 在 Kotlin 中使用 Java 记录类型
      • 从 Java 到 Kotlin 迁移指南
        • 字符串
        • 集合
        • 可空性
        • 标准输入
    • 原生
      • Kotlin/Native 入门——在 IntelliJ IDEA 中
      • 定义文件
      • 与 C 语言互操作
        • 与 C 语言互操作性
        • 映射来自 C 语言的原始数据类型——教程
        • 映射来自 C 语言的结构与联合类型——教程
        • 映射来自 C 语言的函数指针——教程
        • 映射来自 C 语言的字符串——教程
        • Kotlin/Native 开发动态库——教程
        • 创建使用 C 语言互操作与 libcurl 的应用——教程
      • 与 Objective-C 互操作性
        • 与 Swift/Objective-C 互操作性
        • Kotlin/Native 开发 Apple framework——教程
      • Kotlin/Native 库
      • 平台库
      • 内存管理器
        • Kotlin/Native 内存管理
        • 与 ARC 集成
        • 迁移到新版内存管理器
      • 调试 Kotlin/Native
      • 符号化 iOS 崩溃报告
      • 参考与提示
        • 目标平台支持
        • iOS 应用的隐私清单
        • 改进编译时间
        • 许可证文件
        • Kotlin/Native FAQ
    • WebAssembly(Wasm)
      • 在 IntelliJ IDEA 中入门 Kotlin/Wasm
      • Kotlin/Wasm 与 WASI 入门
      • 调试 Kotlin/Wasm 代码
      • 与 JavaScript 的互操作
      • 故障排查
    • JavaScript
      • 搭建 Kotlin/JS 项目
      • 运行 Kotlin/JS
      • 开发服务器与持续编译
      • 调试 Kotlin/JS 代码
      • 在 Kotlin/JS 平台中运行测试
      • Kotlin/JS 无用代码消除
      • Kotlin/JS IR 编译器
      • Kotlin 用于 JS 平台
        • 浏览器与 DOM API
        • 在 Kotlin 中使用 JavaScript 代码
        • 动态类型
        • 使用来自 npm 的依赖
        • 在 JavaScript 中使用 Kotlin 代码
        • JavaScript 模块
        • Kotlin/JS 反射
        • 类型安全的 HTML DSL
    • 脚本
      • Kotlin 自定义脚本入门——教程
  • 标准库
    • 集合
      • 集合概述
      • 构造集合
      • 迭代器
      • 区间与数列
      • 序列
      • 集合操作概述
      • 集合转换操作
      • 过滤集合
      • 加减操作符
      • 分组
      • 取集合的一部分
      • 取单个元素
      • 排序
      • 聚合操作
      • 集合写操作
      • List 相关操作
      • Set 相关操作
      • Map 相关操作
    • 读取标准输入
    • 选择加入要求
    • 作用域函数
    • 时间度量
  • 官方库
    • 协程(kotlinx.coroutines)
      • 协程指南
      • 协程基础
      • Kotlin 协程与通道介绍↗︎
      • 取消与超时
      • 组合挂起函数
      • 协程上下文与调度器
      • 异步流
      • 通道
      • 协程异常处理
      • 共享的可变状态与并发
      • select 表达式(实验性的)
      • 使用 IntelliJ IDEA 调试协程——教程
      • 使用 IntelliJ IDEA 调试 Kotlin Flow——教程
    • 序列化(kotlinx.serialization)
    • Kotlin Metadata JVM(kotlin-metadata-jvm)
    • Lincheck(kotlinx.lincheck)
      • Lincheck 指南
      • 用 Lincheck 编写第一个测试
      • 测试策略
      • 操作参数
      • 数据结构约束
      • 进度保证
      • 时序规范
    • Ktor↗︎
  • API 参考
    • 标准库(stdlib)↗︎
    • 测试库(kotlin.test)↗︎
    • 协程(kotlinx.coroutines)↗︎
    • 序列化(kotlinx.serialization)↗︎
    • Kotlin I/O 库(kotlinx-io)↗︎
    • 日期与时间(kotlinx-datetime)↗︎
    • JVM 元数据(kotlinx-metadata-jvm)↗︎
    • Ktor↗︎
    • Kotlin Gradle 插件(kotlin-gradle-plugin)↗︎
  • 语言参考
    • 关键字与操作符
    • 语法↗︎
    • 语言规范↗︎
  • 工具
    • 构建工具
      • Gradle
        • Gradle 概述
        • Gradle 入门——教程
        • 配置 Gradle 项目
        • Gradle 最佳实践
        • Kotlin Gradle 插件中的编译器选项
        • Kotlin Gradle 插件中的编译项与缓存
        • 支持 Gradle 插件变体
      • Maven
      • Ant
    • Dokka
      • 简介
      • Dokka 入门
      • 运行 Dokka
        • Gradle
        • Maven
        • CLI
      • 输出格式
        • HTML
        • Markdown
        • Javadoc
      • Dokka 插件
      • 模块文档
    • 用于 Kotlin 开发的 IDE
    • 使用 IntelliJ IDEA 迁移到 Kotlin 代码风格
    • Kotlin Notebook
    • 用于 Kotlin 的 Lets-Plot
    • 运行代码片段
    • Kotlin 与 TeamCity 的持续集成
    • 编写代码文档:KDoc
    • Kotlin 与 OSGi
  • 编译器与插件
    • 编译器
      • K2 编译器迁移指南
      • Kotlin 命令行编译器
      • Kotlin 编译器选项
    • 编译器插件
      • 全开放编译器插件
      • No-arg 编译器插件
      • 带有接收者的 SAM 编译器插件
      • kapt 编译器插件
      • Lombok 编译器插件
      • Power-assert
    • Compose 编译器
      • Compose 编译器迁移指南
      • Compose 编译器选项 DSL
    • Kotlin 符号处理(KSP)API
      • KSP 概述
      • KSP 快速入门
      • 为什么选用 KSP
      • KSP 示例
      • KSP 如何为 Kotlin 代码建模
      • Java 注解处理对应到 KSP 参考
      • 增量处理
      • 多轮次处理
      • KSP 与 Kotlin 多平台
      • 在命令行运行 KSP
      • 常见问题
  • 学习资料
    • 学习资料概述
    • 例学 Kotlin↗︎
    • Kotlin 心印
    • Kotlin 核心课程↗︎
    • Kotlin 动手实践
    • Kotlin 小窍门
    • 图书
    • Advent of Code 谜题
    • 在 IDE 中学习(JetBrains 学院)
      • 学习 Kotlin
      • 讲授 Kotlin
    • 库作者指南
      • 简介
      • 最小化心理复杂性
        • 概述
        • 简单
        • 可读性
        • 一致性
        • 可预测性
        • 可调试性
        • 可测试性
      • 反向兼容性
      • 内容翔实的文档
      • 构建多平台库
  • 早期访问计划(EAP)
    • 参与 Kotlin 早期访问计划
    • 配置构建采用 EAP
  • 其他资源
    • FAQ
    • Kotlin 兼容性指南
      • Kotlin 2.1 的兼容性指南
      • Kotlin 2.0 的兼容性指南
      • Kotlin 1.9 的兼容性指南
      • Kotlin 1.8 的兼容性指南
      • Kotlin 1.7.20 的兼容性指南
      • Kotlin 1.7 的兼容性指南
      • Kotlin 1.6 的兼容性指南
      • Kotlin 1.5 的兼容性指南
      • Kotlin 1.4 的兼容性指南
      • Kotlin 1.3 的兼容性指南
      • 兼容模式
    • Kotlin 基金会
      • Kotlin 基金会↗︎
      • 语言委员会准则↗︎
      • 提交不兼容变更指南↗︎
      • Kotlin 品牌用途准则↗︎
      • Kotlin 基金会 FAQ↗︎
    • Google Summer of Code
      • 概述
      • Google Summer of Code with Kotlin 2025↗︎
      • Google Summer of Code with Kotlin 2024↗︎
      • Google Summer of Code with Kotlin 2023↗︎
    • 安全
    • 社区
      • 贡献力量
      • KUG 准则
      • Kotlin 之夜准则
      • Kotlin Slack 的行为准则与指南
    • Kotlin 品牌素材
    • 宣传资料↗︎
  • 本书使用 HonKit 发布

Gradle

Gradle

  • Gradle 概述
  • Gradle 入门——教程
  • 配置 Gradle 项目
  • Gradle 最佳实践
  • Kotlin Gradle 插件中的编译器选项
  • Kotlin Gradle 插件中的编译项与缓存
  • 支持 Gradle 插件变体