Kotlin编程实践 pdf下载pdf下载

Kotlin编程实践百度网盘pdf下载

作者:
简介:本篇提供书籍《Kotlin编程实践》百度网盘pdf下载
出版社:机械工业出版社京东自营官方旗舰店
出版时间:2020-08
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

编辑推荐

适读人群 :本书从安装并运行Kotlin讲起,是一本入门级读物,适合有一定编程经验的开发人员,想要零基础入门Kotlin阅读。

本书的重点不仅在于讲解 Kotlin 的语法与语义,还将展示何时以及为何应该使用某个指定的语言特性。

本书的目标不一定会涵盖每一个 Kotlin 语法与库的细节。

但在最后,本书添加了很多基本原理的内容,让即使只有 Kotlin 初级知识的读者也可以理解本书的内容。

当你认真学习 Kotlin 的细节后,你就可以使用这门受欢迎的语言构建 Android 应用、Web 应用以及其他程序。

Kotlin 不仅可以用于任何应用 Java 的地方,还可以用于 iOS 开发、编写原生应用程序、JavaScript 开发以及更多场景。

内容简介

认真学习 Kotlin 的细节后,你就可以使用这门受欢迎的语言构建 Android 应用、Web 应用以及其他程序。通过学习本书,开发者们将学习到如何在自己的项目中使用这门基于Java的语言。无论你是经验丰富的编程人员还是学习 Kotlin 的新人,都将获益良多。

作者 Ken Kousen(也是Modern Java Recipes一书的作者)将教授你如何专注于使用自己的 Kotlin 方案来解决问题而不是陷于基础语法之中。针对常见问题,本书将给出具体解决方案。Kotlin 在 Android 开发上已经大规模使用,但实际上 Kotlin 不仅可以用于任何应用 Java 的地方,还可以用于 iOS 开发、编写原生应用程序、JavaScript 开发以及更多场景。立即投入 Kotlin 的学习并开始创建新项目吧!


通过本书,你将:

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

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

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

● 能够编写扩展函数。

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

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


已掌握Kotlin基础知识的读者推荐阅读:《深入理解Kotlin协程》,点击购买。



作者简介

【作者简介】

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

【译者简介】

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


精彩书评

★Kotlin是2011年由JetBrains推出的新一代编程语言。最初基于JVM,如今已向Native、JavaScript、数据科学等多个领域迈进。根据2020年2月JVM Ecosystem的数据,在JVM上Kotlin的份额已经仅次于Java,位居第二。2017年Google官方宣布Kotlin为Android的开发语言后,Kotlin的发展势头更为迅速,已成为编程语言界的又一颗新星,在业界得到了广泛的关注。

携程研发部门自2017年以后,对基于Kotlin的技术进行了卓有成效的探索与尝试,将Kotlin成功地应用在机票等产品的开发中,有效地提高了开发人员的效率。为了帮助更多的程序员尽快了解Kotlin,机票研发部Android开发组高级工程师乔禹昂利用工作之外的时间翻译了这本书。全书通俗易懂,用大量简单的示例程序清晰地解释了Kotlin的语法、数据结构、函数式编程等主要特性,是对Kotlin初学者非常有帮助的一本工具书。

希望这本书的推出能进一步推进Kotlin技术在国内的应用!

—携程旅行网 机票事业部CTO谭煜东

★在快速变化的移动互联网时代,软件开发工作者面临的挑战是如何提供高效的开发能力以应对产品快速试错、迭代产生的大量开发工作,因此选择一门高效的开发语言就变得尤为重要。Kotlin作为一款现代多平台应用的静态编程语言,有着简洁、高效、迁移成本低等优点,值得我们技术研发人员关注和学习。本书有关Spring和测试的内容,值得推荐。

—携程旅行网 机票研发部 高级研发总监 向阳

★Kotlin诞生于2010年,开源于2012年,吸收了Java等语言的优良特性,提供了令人惊艳的编程体验,是编程语言界名副其实的“后浪”。译者乔禹昂是一位对Kotlin语言有着极大热情和信仰,并在工作中持续地躬行实践的95后程序员,标准的“后浪”技术人员。相信这本双重“后浪”之作可以给读者带来崭新的学习体验。

—携程旅行网 机票研发部 研发总监 陈琦

★本书译者也是Kotlin中文站的一位译者,译文精益求精,质量一流。本书内容较新,涵盖了JVM平台Kotlin编程的方方面面,不仅有面向对象与函数式编程、协程与结构化并发,甚至还有测试以及编写Spring应用程序的内容。对于想系统化学习Kotlin的读者,本书是优选。

—Kotlin中文站负责人,贾彦伟

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

—腾讯地图数据采集团队移动客户端负责人,Kotlin布道师,

《深入理解Kotlin协程》作者,霍丙乾


目录

●第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 理解const与val的不同之处 55

3.2 创建自定义的getter与setter 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 使用observable与vetoable委托 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章 其他

11.1 在代码中获取Kotlin版本号

11.2 重复执行lambda表达式

11.3 强制when语句进行穷举

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

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

11.6 使一个类可执行

11.7 测量经过时间

11.8 启动线程

11.9 使用TODO强制完成

11.10 理解Random的随机行为

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

11.12 告知Java处理异常

●第12章 Spring框架

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

12.2 持久化Kotlin数据类

12.3 依赖注入

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

13.1 选择协程构建器

13.2 使用withContext替换async/await

13.3 使用协程调度器

13.4 在Java线程池上运行协程

13.5 取消协程

13.6 协程调试


前言/序言

欢迎来到Kotlin的世界!本书的重点不仅在于讲解Kotlin的语法与语义,还将向你展示何时以及为何应该使用某个特定的语言特性。本书不会涵盖每一个Kotlin语法与库的细节,但在最后添加了很多基本原理的“食谱”,让即使只有Kotlin初级知识的读者也可以理解本书的内容。

JetBrains大力鼓励Kotlin社区拥抱多平台(Multiplatform)、原生(Native)以及JavaScript开发的发展。由于它们还处于测试阶段且使用率很低,所以最后还是决定不在本书中介绍它们。因此,本书只专注于运行在JVM上的Kotlin。

存放本书所有相关代码的Github仓库位于https://github.com/kousen/kotlin-cookbook。它包含一个Gradle包装器(当然,构建文件是用Kotlin DSL编写的)并且通过了所有的测试。

本书中所有的代码示例均已通过两种长期支持的可用Java版本进行了编译与测试,即Java 8与Java 11。尽管Java 8在技术上已超过其生命周期的最后期限,但它在业界依然被普遍使用,代码示例确保可以在其上运行。在本书写作过程中,Kotlin的版本是1.3.50,而当前版本则是1.3.60译注1。所有的代码都可以在这两个版本上运行,并且Github仓库将经常更新以使用最新版的Kotlin。

【本书目标读者】

本书面向已经了解面向对象编程基础的开发者,特别是了解Java以及其他基于JVM的语言的读者。拥有Java知识将会有所帮助,但这不是必需的。

本书更侧重于Kotlin的使用技巧与习惯用法,而不是成为这门语言的详尽资源。其优点在于在任何给定的示例中可以发挥这门语言的所有潜力,但缺点在于对这些特性的基础部分介绍有限。本书每一章都包含了该章相关基础技术的简介,所以如果你只是模糊地知道如何创建集合、使用数组,或设计类,那么已经相当不错了。在线参考手册(https://kotlinlang.org/docs/reference)对Kotlin进行了详尽的介绍,所以本书经常引用其中的示例与讨论。

此外本书还经常介绍Kotlin库函数的实现。这是为了展示这门语言的开发者如何在实践中使用它们,并讨论这些函数的设计方式。如果你很着急,无须预先了解实现,可以跳过这些细节。

【本书主要内容】

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

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

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

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

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

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

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

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

第8章讨论了Kotlin中的一个便捷特性:如何实现委托。委托可以让你使用组合而不是继承,Kotlin的标准库包含了一系列的委托,例如lazy、observable以及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章的内容不需要按特定顺序阅读。它们相辅相成,你可以从任何地方开始阅读。章节分组提供了一种将相似内容放在一起的方式,但是我们还是希望你可以在各章节之间自由跳跃从而解决你当前可能遇到的任何问题。


【给Android开发者的特别建议】

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


◆推荐序 ◆

序言

每隔几年,就会出现一种革命性的新语言,它们常常扬言要改变人们编写软件的方式。但现实却常常辜负它们。而Kotlin则与它们有所不同。将时光回退到2011年,Kotlin开始缓慢地、几乎不可察觉地悄悄进入世界各地的代码库。那些长期使用Java并且发现了它的缺点的人们开始到处学习Kotlin。正因如此,他们缩短了代码的长度却增强了代码的功能。

Kotlin作为Android开发的首选语言而闻名,而如今Kotlin已经足够成熟,所以迫切需要一本像本书这样的书。本书从头开始讲解了许多有用的技巧。作者将向你展示如何安装Kotlin以及为你的项目配置它。他也会向你展示如何在Java环境、浏览器中或作为一个独立的应用程序来运行Kotlin。但本书会快速推进内容,解决世界各地的开发者与架构师所面临的日常编程问题。

尽管有一小节是专门讲解Kotlin测试的,但你会发现本书本身就是测试驱动的。它将测试作为如何使用这门语言的实际示例。通过测试,你可以更精确地调整方案以适应你的需求。

本书将带给你直接而实用的帮助,可以指导你在Kotlin旅途中快速进步。本书是Kotlin必不可少的操作指南,每个开发者都应将其保存在桌面(真实或虚拟)上,以支持日常工作。

Dawn Griffiths与David Griffiths

Head First Kotlin的作者

2019年10月6日