• 关于本书
    • 文档
  • 入门
  • 概述
    • Kotlin 多平台
    • Kotlin 用于服务器端开发
    • Kotlin 用于 Android 开发
    • Kotlin 用于 JavaScript 开发
    • Kotlin 用于原生开发
    • Kotlin 用于数据科学
    • Kotlin 用于竞技程序设计
  • Kotlin 的新特性
    • Kotlin 1.8.0
    • Kotlin 1.8.20-Beta
    • 早期版本
      • 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↗︎
    • 编码规范
  • 概念
    • 类型
      • 基本类型
        • 概述
        • 数字
        • 布尔
        • 字符
        • 字符串
        • 数组
        • 无符号整型
      • 类型检测与类型转换
    • 控制流程
      • 条件与循环
      • 返回与跳转
      • 异常
    • 包与导入
    • 类与对象
      • 类
      • 继承
      • 属性
      • 接口
      • 函数式(SAM)接口
      • 可见性修饰符
      • 扩展
      • 数据类
      • 密封类
      • 泛型:in、out、where
      • 嵌套类
      • 枚举类
      • 内联类
      • 对象表达式与对象声明
      • 委托
      • 属性委托
      • 类型别名
    • 函数
      • 函数
      • lambda 表达式
      • 内联函数
      • 操作符重载
    • 类型安全的构建器
    • 空安全
    • 相等性
    • this 表达式
    • 异步程序设计技术
    • 协程
    • 注解
    • 解构声明
    • 反射
  • 多平台开发
    • Kotlin 多平台用于 iOS 与 Android
      • Kotlin 多平台移动端入门
      • 搭建环境
      • 创建第一个跨平台应用
      • 向项目中添加依赖
      • 升级应用
      • 项目圆满结束
      • 了解移动端项目结构
      • 让 Android 应用程序能用于 iOS——教程
      • 发布应用程序
      • 使用 Ktor 和 SQLDelight 创建多平台应用——教程
    • Kotlin 多平台用于其他平台
      • Kotlin 多平台入门
      • 了解多平台项目结构
      • 手动设置目标
      • 使用 Kotlin 多平台构建全栈 web 应用
    • 创建多平台库
      • 创建并发布多平台库——教程
      • 发布多平台库
    • 共享代码原则
      • 平台间共享代码
      • 接入平台相关 API
      • 分层项目结构
    • 添加依赖项
      • 添加依赖项
      • 添加 Android 依赖项
      • 添加 iOS 依赖项
    • 运行测试
    • 构件编译项
      • 配置编译项
      • 【实验性 DSL】构建最终原生二进制文件
      • 构建最终原生二进制文件
    • 多平台 Gradle DSL 参考
    • 样例
    • FAQ
    • 向团队介绍跨平台移动端开发
    • Kotlin 多平台兼容性指南
    • Kotlin 多平台移动端插件版本发布
  • 平台
    • 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 迁移指南
        • 字符串
        • 集合
        • 可空性
    • JavaScript
      • 以 Kotlin/JS for React 入门
      • 搭建 Kotlin/JS 项目
      • 运行 Kotlin/JS
      • 开发服务器与持续编译
      • 调试 Kotlin/JS 代码
      • 在 Kotlin/JS 平台中运行测试
      • Kotlin/JS 无用代码消除
      • Kotlin/JS IR 编译器
      • 将 Kotlin/JS 项目迁移到 IR 编译器
      • Kotlin 用于 JS 平台
        • 浏览器与 DOM API
        • 在 Kotlin 中使用 JavaScript 代码
        • 动态类型
        • 使用来自 npm 的依赖
        • 在 JavaScript 中使用 Kotlin 代码
        • JavaScript 模块
        • Kotlin/JS 反射
        • 类型安全的 HTML DSL
        • 用 Dukat 生成外部声明
      • 范例
      • 使用 React 与 Kotlin/JS 构建 web 应用程序——教程
    • 原生
      • Kotlin/Native 入门——在 IntelliJ IDEA 中
      • Kotlin/Native 入门——使用 Gradle
      • Kotlin/Native 入门——使用命令行编译器
      • 与 C 语言互操作
        • 与 C 语言互操作性
        • 映射来自 C 语言的原始数据类型——教程
        • 映射来自 C 语言的结构与联合类型——教程
        • 映射来自 C 语言的函数指针——教程
        • 映射来自 C 语言的字符串——教程
        • 创建使用 C 语言互操作与 libcurl 的应用——教程
      • 与 Objective-C 互操作性
        • 与 Swift/Objective-C 互操作性
        • Kotlin/Native 开发 Apple framework——教程
      • CocoaPods 集成
        • CocoaPods 概述
        • 添加对 Pod 库的依赖
        • 使用 Kotlin Gradle 项目作为 CocoaPods 依赖项
        • CocoaPods Gradle 插件 DSL 参考
      • Kotlin/Native 库
      • 平台库
      • Kotlin/Native 开发动态库——教程
      • 内存管理器
        • Kotlin/Native 内存管理
        • iOS 集成
        • 迁移到新版内存管理器
        • 旧版内存管理器
          • 不可变性与并发
          • 并发概述
          • 并发可变性
          • 并发与协程
      • 调试 Kotlin/Native
      • Kotlin/Native 目标平台支持
      • 符号化 iOS 崩溃报告
      • 改进 Kotlin/Native 编译时间的技巧
      • Kotlin/Native FAQ
    • 脚本
      • Kotlin 自定义脚本入门——教程
  • 标准库
    • 集合
      • 集合概述
      • 构造集合
      • 迭代器
      • 区间与数列
      • 序列
      • 集合操作概述
      • 集合转换操作
      • 过滤集合
      • 加减操作符
      • 分组
      • 取集合的一部分
      • 取单个元素
      • 排序
      • 聚合操作
      • 集合写操作
      • List 相关操作
      • Set 相关操作
      • Map 相关操作
    • 作用域函数
    • 选择加入要求
  • 官方库
    • 协程(kotlinx.coroutines)
      • 协程指南
      • 协程基础
      • Kotlin 协程与通道介绍↗︎
      • 取消与超时
      • 组合挂起函数
      • 协程上下文与调度器
      • 异步流
      • 通道
      • 协程异常处理
      • 共享的可变状态与并发
      • select 表达式(实验性的)
      • 使用 IntelliJ IDEA 调试协程——教程
      • 使用 IntelliJ IDEA 调试 Kotlin Flow——教程
    • 序列化(kotlinx.serialization)
    • Lincheck(kotlinx.lincheck)
      • Lincheck 指南
      • 用 Lincheck 编写第一个测试
      • 测试策略
      • 操作参数
      • 模块化测试
      • 数据结构约束
      • 进度保证
      • 时序规范
    • Ktor↗︎
  • API 参考
    • 标准库(stdlib)↗︎
    • 测试库(kotlin.test)↗︎
    • 协程(kotlinx.coroutines)↗︎
    • 序列化(kotlinx.serialization)↗︎
    • 日期与时间 (kotlinx-datetime)↗︎
    • Ktor↗︎
  • 语言参考
    • 关键字与操作符
    • 语法↗︎
    • 语言规范↗︎
  • 工具
    • 构建工具
      • 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 与 TeamCity 的持续集成
    • 编写代码文档:KDoc
    • Kotlin 与 OSGi
  • 编译器与插件
    • 编译器
      • Kotlin 命令行编译器
      • Kotlin 编译器选项
    • 编译器插件
      • 全开放编译器插件
      • No-arg 编译器插件
      • 带有接收者的 SAM 编译器插件
      • kapt 编译器插件
      • Lombok 编译器插件
    • Kotlin 符号处理(KSP)API
      • KSP 概述
      • KSP 快速入门
      • 为什么选用 KSP
      • KSP 示例
      • KSP 如何为 Kotlin 代码建模
      • Java 注解处理对应到 KSP 参考
      • 增量处理
      • 多轮次处理
      • KSP 与 Kotlin 多平台
      • 在命令行运行 KSP
      • 常见问题
  • 学习资料
    • 学习资料概述
    • 例学 Kotlin↗︎
    • Kotlin 心印
    • Kotlin 基础课程↗︎
    • Kotlin 小窍门
    • 图书
    • Advent of Code 谜题
    • 在 IDE 中学习(JetBrains 学院)
      • 学习 Kotlin
      • 讲授 Kotlin
  • 早期访问计划(EAP)
    • 参与 Kotlin 早期访问计划
    • 安装 Kotlin EAP 插件
    • 配置构建采用 EAP
  • 其他资源
    • FAQ
    • Kotlin 演进
      • 演进原则
      • Kotlin 各组件的稳定性
      • Kotlin 各组件的稳定性(1.4 之前)
      • 兼容性
        • 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↗︎
    • 期刊
      • 跨平台移动端开发
      • 原生与跨平台应用开发
      • 六大最佳跨平台应用开发框架
    • 安全
    • 社区
      • 贡献力量
      • KUG 准则
      • Kotlin 之夜准则
    • Kotlin 品牌素材
    • 宣传资料↗︎
  • 本书使用 HonKit 发布

创建多平台库

创建多平台库

  • 创建并发布多平台库——教程
  • 发布多平台库