Summary 关于本书 语言指南 概述 Kotlin 用于服务器端开发 Kotlin 用于 Android 开发 Kotlin 用于 JavaScript 开发 Kotlin 用于原生开发 Kotlin 用于数据科学 协程 多平台 新特性 1.4.30 的新特性 Kotlin 插件 2020.3 1.4.20 的新特性 1.4 的新特性 1.3 的新特性 1.2 的新特性 1.1 的新特性 开始 基本语法 习惯用法 编码规范 基础 基本类型 包 控制流 返回与跳转 类与对象 类与继承 属性与字段 接口 函数式(SAM)接口 可见性修饰符 扩展 数据类 密封类 泛型 嵌套类 枚举类 对象 类型别名 内联类 委托 委托属性 函数与 Lambda 表达式 函数 Lambda 表达式 内联函数 集合 集合概述 构造集合 迭代器 区间与数列 序列 操作概述 转换 过滤 加减操作符 分组 取集合的一部分 取单个元素 排序 聚合操作 集合写操作 List 相关操作 Set 相关操作 Map 相关操作 协程 协程指南 基础 取消与超时 组合挂起函数 协程上下文与调度器 异步流 通道 异常处理与监督 共享的可变状态与并发 Select 表达式(实验性的) 多平台程序设计 Kotlin 多平台 创建多平台库 了解项目 平台间共享代码 接入平台相关 API 手动设置目标 添加依赖项 配置编译项 运行测试 发布多平台库 构建最终原生二进制文件 所支持平台 多平台 Gradle DSL 参考 迁移到 Kotlin 1.4 更多语言结构 解构声明 类型检测与转换 This 表达式 相等性 操作符重载 空安全 异常 注解 反射 序列化 作用域函数 类型安全的构建器 选择加入要求 核心库 标准库 kotlin.test 参考 关键字与操作符 语法 编码风格约定 Java 互操作 Kotlin 中调用 Java Java 中调用 Kotlin JavaScript 搭建项目 动态类型 Kotlin 中调用 JavaScript JavaScript 中调用 Kotlin JavaScript 模块 JavaScript 反射 JavaScript DCE IR 编译器 用 Dukat 生成外部声明 原生 并发 不可变性 Kotlin 库 平台库 与 C 语言互操作 与 Objective-C 及 Swift 互操作 CocoaPods 集成 Gradle 插件 调试 FAQ 工具 Gradle Maven Ant 编译器选项 编译器插件 Kapt Dokka OSGi 演进 Kotlin 语言演进 不同组件的稳定性 Kotlin 1.3 的兼容性指南 Kotlin 1.4 的兼容性指南 常见问题 FAQ 与 Java 比较 与 Scala 比较