code小生  一个专注大前端领域的技术平台

公众号回复 Android 加入安卓技术群

导读: Kotlin诞生于 2011 年,开源于 2012 年,吸收了 Java 等语言的优良特性,提供了令人惊艳的编程体验,是编程语言界名副其实的“后浪”。

欢迎来到Kotlin的世界!

Kotlin是 2011 年由 JetBrains 推出的新一代编程语言。最初基于 JVM ,如今已向 NativeJavaScript 、数据科学等多个领域迈进。 Kotlin 是一种广泛的通用语言。你可以在任何原先使用 Java 的地方以及其他更多场景中使用它。

根据2020年 2JVM Ecosystem 的数据, JVMKotlin 的份额已经仅次于 Java ,位居第 2017Google 官方宣布 KotlinAndroid 的开发语言后, Kotlin 的发展势头更为迅速,已成为编程语言界的又一颗新星,在业界得到了广泛的关注。

如今Kotlin已经足够成熟,众多 Android 开发者迫切需要一本入门级的 Kotlin 编程书籍,以顺利从 Java 过渡到 Kotlin

《Kotlin编程实践》 一书通俗易懂,作者从向你展示 如何安装 Kotlin 以及为你的项目配置它讲起,教会你 如何在 Java 环境、浏览器中或作为一个独立的应用程序来运行 Kotlin 。用大量简单的示例程序清晰地解释了 Kotlin 的语法 数据结构 函数式编程 等主要特性,是对 Kotlin 初学者非常有帮助的一本工具书。

Kotlin的版本迭代非常迅速,相关的书籍、文章和教程很容易就会被打上“过时”的标记。本书基于 Kotlin 持续时间长、语法特性非常成熟的 1.3 版本编写,除了版本够新之外,内容的组织方式也非常讲究,采用了抛出问题、回答问题的方式, 既适合新手入门通读,也适合老手作为资料重点翻阅 。相比之下,本书对初学者更为友好,负责翻译本书的禹昂更是 Kotlin 中文官网的主要翻译贡献者之一,所有的概念和术语都完全依照中文官网的翻译标准进行推敲,相信大家的阅读体验会如同查阅中文官网一般。

本书将带给你直接而实用的帮助,可以指导你在Kotlin旅途中快速进步。本书是 Kotlin 必不可少的操作指南,每个开发者都应将其放在案头,以支持日常工作。

主要内容

本书分为13章,每一章都是独立的,但本书引用了许多其他资料。 你可以按任意喜欢的顺序阅读本书。

第1章 讲解了安装并运行 Kotlin 的基本过程,包括使用 REPL ,使用诸如 Maven 以及 Gradle 等构建工具,以及在 Graal 中使用原生镜像生成器。

第2章 讲解了 Kotlin 的基本特性—例如可空类型、操作符重载以及类型转换,然后介绍了一些更深奥的问题,包括按位移位操作符或者在 Pair 类上编写扩展函数等。

第3章 重点介绍了 Kotlin 的面向对象特性,而该部分内容可能会让其他语言的开发者对此感到惊讶或不明所以。它包含如何使用 const 关键字、 Kotlin 如何处理幕后属性、延迟初始化以及令人恐惧的 Nothing 类,这些内容一定会令现有的 Java 开发者感到困惑。

第4章 只有很少的一部分内容,其中涵盖一些需要被解释说明的函数式特性。函数式编程概念会始终贯穿全书,特别是当我们谈论集合、序列以及协程时,但该章中包含的一些有用的技巧可能会让你感觉到不同寻常或非常有趣。

第5章 介绍了数组与集合,主要介绍一些不那么为人所知的方法,例如集合解构、按多个属性排序、在集合上构建窗口,以及创建数列。

第6章 展示了 Kotlin 如何惰性处理序列中的元素,类似于在 Java 中使用流的方式,内容包含生成序列、在序列中生产元素以及使用无限序列。

第7章 涵盖了 Kotlin 独有的另一个主题:在对象的上下文中执行代码块的函数。诸如 letapply 以及 also 这类函数在 Kotlin 中非常有用,该章会说明为什么以及如何使用它们。

第8章 讨论了 Kotlin 中的一个便捷特性:如何实现委托。委托可以让你使用组合而不是继承, Kotlin 的标准库包含了一系列的委托,例如 lazyobservable 以及 vetoable

第9章 涵盖了有关测试的重要主题,将会重点关注 JUnit5 。在当前版本下, JUnit 已经被设计为可以与 Kotlin 良好地配合使用,其中包括常规用法以及在 Spring 框架应用程序中使用。该章会讨论使编写与执行测试更加容易的几种方式。

第10章 涵盖了一些专门用于资源管理的方法,包括文件 I/O ,以及在多种情况下具有广泛适用性的 use 函数。

第11章 介绍了其他类别的书中不容易找到的主题。诸如如何获取当前 Kotlin 版本,如何强制 when 语句在即使没有返回值的时候也要覆盖所有情况,以及如何在正则表达式中使用 replace 函数。此外,也讨论了 TODO 函数和 Random 类,以及如何与 Java 异常处理集成。

第12章 涉及对 Kotlin 非常友好的 Spring 框架与 Spring Boot ,少量内容展示了如何将 Kotlin 类作为托管的 bean 、如何实现 JPA 持久性,以及如何在需要的时候进行依赖注入。

第13章 介绍协程。协程是 Kotlin 中最受欢迎的功能之一,也是这门语言并发与并行编程的基础,内容包含基础知识,例如构建器与调度器、如何取消与调试协程,以及如何在自定义的 Java 线程池中运行它们。

这13章的内容 不需要按特定顺序阅读 。它们相辅相成,你可以从任何地方开始阅读。章节分组提供了一种将相似内容放在一起的方式,但是我们还是希望你可以在各章节之间自由跳跃从而解决你当前可能遇到的任何问题。

通过阅读本书,你将:

  • 掌握函数式编程概念,包括 lambda 表达式 序列 并发 。 

  • 学习如何使用 委托 延迟 初始化 作用域函数 。 

  • 学习 Kotlin 与 Java 互操作的能力并使用 Kotlin 访问 Java 库。

  • 能够编写 扩展函数

  • 能够使用诸如 JUnit5 之类的实用库。

  • 在特定的开发框架(例如 Android Spring )内获得实践经验。

作者简介

Ken Kousen Java ChampionOracle Groundbreaker AmbassadorJavaOne Rock Star 三个奖项的获得者。 Ken 在他自己的公司 Kousen IT 开发软件并教授软件开发课程。同时也是 JetBrains 官方认证的 Kotlin 培训合作伙伴。

译者简介

乔禹昂 ,携程机票移动端高级工程师,长期在工作中将  Kotlin 用于实践 Kotlin 界的优秀“后浪” Kotlin 中文社区成员,官方文档译者。主要负责翻译协程、 Native 部分的多篇官方文档,曾担任北京 GDG/Kotlin Everywhere 大会讲师,分享了《 Kotlin 函数式编程》的主题。对 Kotlin Native Kotlin Multiplaform 等实验性新技术也 颇有研究。

目录

第1章 安装并运行 Kotlin 11

1.1 在没有本地编译器的情况下运行 Kotlin 11

1.2 在本地安装 Kotlin 13

1.3 在命令行中编译并运行 Kotlin 15

1.4 使用 Kotlin REPL 16

1.5 执行 Kotlin 脚本17

1.6 使用 GraalVM 构建独立应用程序18

1.7 为 Gradle 添加 Kotlin 插件( Groovy 语法)21

1.8 为 Gradle 添加 Kotlin 插件( Kotlin 语法)24

1.9 使用 Gradle 构建 Kotlin 工程26

1.10 使用 Maven 编译 Kotlin 27

第2章  Kotlin 基础31

2.1 在 Kotlin 中使用可空类型31

2.2 在 Java 中添加可空指示器34

2.3 为 Java 添加重载方法36

2.4 显式类型转换40

2.5 打印不同的进制42

2.6 数幂44

2.7 使用移位运算符46

2.8 使用位布尔运算符49

2.9 使用 to 函数创建 Pair 实例52

第3章  Kotlin 中的面向对象编程55

3.1 理解 constval 的不同之处55

3.2 创建自定义的 gettersetter 56

3.3 定义数据类59

3.4 幕后属性技术62

3.5 操作符重载65

3.6 使用 lateinit 进行延迟初始化67

3.7 使用安全转换函数、恒等操作符,以及 Elvis 操作符覆盖 equals 函数70

3.8 创建单例72

3.9 无事生非75

第4章 函数式编程79

4.1 在算法中使用 fold 79

4.2 使用 reduce 函数进行归约82

4.3 使用尾递归84

第5章 集合89

5.1 使用数组89

5.2 创建集合92

5.3 为已存在的集合创建只读视图94

5.4 从集合构建 map 96

5.5 当集合为空的时候返回默认值97

5.6 将变量限制在给定区间98

5.7 处理集合中的窗口100

5.8 解构 list 102

5.9 将多个属性排序103

5.10 自定义迭代器105

5.11 根据类型过滤集合107

5.12 在数列中创建区间108

第6章 序列113

6.1 使用懒序列113

6.2 生成序列115

6.3 管理无限序列117

6.4 以固定间隔从序列生成元素119

第7章 作用域函数123

7.1 使用 apply 函数在构造结束之后初始化对象123

7.2 使用 also 函数进行其他操作124

7.3 使用 let 函数与 Elvis 126

7.4 使用 let 函数代替临时变量128

第8章  Kotlin 委托131

8.1 使用委托实现组合131

8.2 使用 lazy 委托134

8.3 确保值不为空136

8.4 使用 observablevetoable 委托137

8.5 使用映射作为委托141

8.6 创建你自己的委托143

第9章 测试147

9.1 设置测试类的生命周期147

9.2 使用数据类进行测试152

9.3 使用帮助函数并使用默认参数154

9.4 使用不同的参数重复 JUnit 5 的测试156

9.5 使用数据类进行参数化测试159

第10章 输入 / 输出161

10.1 使用 use 函数管理资源161

10.2 写文件164

第11章 其他167

11.1 在代码中获取 Kotlin 版本号167

11.2 重复执行 lambda 表达式169

11.3 强制 when 语句进行穷举170

11.4 在正则表达式中使用 replace 函数172

11.5 转换为二进制字符串并返回174

11.6 使一个类可执行176

11.7 测量经过时间179

11.8 启动线程180

11.9 使用 TODO 强制完成183

11.10 理解 Random 的随机行为185

11.11 在函数命名中使用特殊字符187

11.12 告知 Java 处理异常188

第12章  Spring 框架191

12.1 开放用于继承的 Spring 管理的 bean 类191

12.2 持久化 Kotlin 数据类194

12.3 依赖注入196

第13章 协程与结构化并发201

13.1 选择协程构建器201

13.2 使用 withContext 替换 async/await 207

13.3 使用协程调度器208

13.4 在 Java 线程池上运行协程210

13.5 取消协程213

13.6 协程调试216

上下滑动查看

本书没有专门针对Android的章节,相反,将全面讨论 KotlinAndroid 中的应用。一些与 Android 有关的特定内容(例如协程的取消),利用了 Android 库广泛使用 Kotlin 的事实,但一般来说,本书涵盖的语言特性可以在任何地方使用。本书希望以一种更通用的方式覆盖这门语言,使 Android 开发者能学到在开发任何项目时都有用的技巧。

直接入手

赠书福利

感谢机械工业张老师赠书 k otlin编程实战 5本,自己留一本,剩下 4 本赠送给大家。

参与方式

  1. 给本文一个双击: 赞+在看

  2. 关注下面我的公众号

  3. 回复 编程实战 建议复制

:point_up_2:长按上方二维码 2 秒 

回复「 编程实战

为避免输错,建议复制

:point_down: 点击抢先预览

相关文章