基本信息
- 作者: [美]肯·寇森(Ken Kousen)
- 丛书名: O’Reilly精品图书系列
- 出版社:机械工业出版社
- ISBN:9787111659624
- 上架时间:2020-11-19
- 出版日期:2020 年7月
- 开本:16开
- 页码:233
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 综合 > 高级程序语言设计

内容简介
目录
前言 3
第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
前言
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章,每一章都是独立的,但本书引用了许多其他资料。你可以按任意喜欢的顺序阅读本书。
第1章讲解了安装并运行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函数。
序言
Kotlin作为Android开发的首选语言而闻名,而如今Kotlin已经足够成熟,所以迫切需要一本像本书这样的书。本书从头开始讲解了许多有用的技巧。作者将向你展示如何安装Kotlin以及为你的项目配置它。他也会向你展示如何在Java环境、浏览器中或作为一个独立的应用程序来运行Kotlin。但本书会快速推进内容,解决世界各地的开发者与架构师所面临的日常编程问题。
尽管有一小节是专门讲解Kotlin测试的,但你会发现本书本身就是测试驱动的。它将测试作为如何使用这门语言的实际示例。通过测试,你可以更精确地调整方案以适应你的需求。
本书将带给你直接而实用的帮助,可以指导你在Kotlin旅途中快速进步。本书是Kotlin必不可少的操作指南,每个开发者都应将其保存在桌面(真实或虚拟)上,以支持日常工作。
Dawn Griffiths与David Griffiths
Head First Kotlin的作者
2019年10月6日
媒体评论
作者 Ken Kousen(也是Modern Java Recipes一书的作者)将教授你如何专注于使用自己的 Kotlin 方案来解决问题而不是陷于基础语法之中。针对常见问题,本书将给出具体解决方案。Kotlin 在 Android 开发上已经大规模使用,但实际上 Kotlin 不仅可以用于任何应用 Java 的地方,还可以用于 iOS 开发、编写原生应用程序、JavaScript 开发以及更多场景。立即投入 Kotlin 的学习并开始创建新项目吧!
通过本书,你将:
? 掌握函数式编程概念,包括 lambda 表达式、序列和并发。
? 学习如何使用委托、延迟初始化和作用域函数。
? 学习 Kotlin 与 Java 互操作的能力并使用 Kotlin 访问 Java 库。
? 能够编写扩展函数。
? 能够使用诸如 JUnit5 之类的实用库。
? 在特定的开发框架(例如 Android 和 Spring)内获得实践经验。
“ 本书是开发者可以快速入门 Kotlin 的超棒资源,为常见的开发任务提供了简明实用的指南,同时指出了从Java过渡到Kotlin面临的困难。”
——Mark Maynard
资深开发者
Ken Kousen是Java Champion、Oracle Groundbreaker Ambassador与JavaOne Rock Star三个奖项的获得者。他著有
Gradle Recipes for Android(O’Reilly)、
Modern Java Groovy(Manning)以及
Modern Java Recipes(O’Reilly)等书,
并在O’Reilly发布过Android、Groovy、
Gradle、Java进阶以及Spring相关的视频课程。Ken在他自己的公司 Kousen IT开发软件并教授软件开发课程。他同时也是JetBrains官方认证的Kotlin培训合作伙伴。