《Kotlin从入门到进阶实战》
前言
Kotlin是一门非研究性的语言,它是一门非常务实的工业级编程语言,它的使命就是帮助程序员们解决实际工程实践中的问题。使用Kotlin 让 Java程序员们的生活变得更好,Java中的那些空指针错误,浪费时间的冗长的样板代码,啰嗦的语法限制等等,在Kotlin中统统消失。Kotlin 简单务实,语法简洁而强大,安全且表达力强,极富生产力。
Java诞生于1995年,至今已有23年历史。当前最新版本是 Java 9。在 JVM 生态不断发展繁荣的过程中,也诞生了Scala、Groovy、Clojure 等兄弟语言。
Kotlin 也正是 JVM 家族中的优秀一员。Kotlin是一种现代语言(版本1.0于2016年2月发布)。它最初的目的是像Scala那样,优化Java语言的缺陷,提供更加简单实用的编程语言特性,并且解决了性能上的问题,比如编译时间。 JetBrains在这些方面做得非常出色。
用 Java 开发多年以后,能够尝试一些新的东西真是太棒了。如果您是 Java 开发人员,使用 Kotlin 将会非常自然流畅。如果你是一个Swift开发者,你将会感到似曾相识,比如可空性(Nullability)。 Kotlin语言的特性有:
1.简洁
大幅减少样板代码量。
2.与Java的100%互操作性
Kotlin可以直接与Java类交互,反之亦然。这个特性使得我们可以直接重用我们的代码库,并将其迁移到 Kotlin中。由于Java的互操作性几乎无处不在。我们可以直接访问平台API以及现有的代码库,同时仍然享受和使用 Kotlin 的所有强大的现代语言功能。
3.扩展函数
Kotlin 类似于 C# 和 Gosu, 它提供了为现有类提供新功能扩展的能力,而不必从该类继承或使用任何类型的设计模式 (如装饰器模式)。
4.函数式编程
Kotlin 语言一等支持函数式编程,就像Scala一样。具备高阶函数、Lambda 表达式等函数式基本特性。
5.默认和命名参数
在Kotlin中,您可以为函数中的参数设置一个默认值,并给每个参数一个名称。这有助于编写易读的代码。
6.强大的开发工具支持
而由于是JetBrains出品,我们拥有很棒的IDE支持。虽然Java到Kotlin的自动转换并不是100% OK 的,但它确实是一个非常好的工具。使用 IDEA 的工具转换Java代码为 Kotlin 代码时,可以轻松地重用60%-70%的结果代码,而且修改成本很小。
Kotlin 除了简洁强大的语法特性外,还有实用性非常强的API以及围绕它构建的生态系统。例如:集合类 API、IO 扩展类、反射API 等。同时 Kotlin 社区也提供了丰富的文档和大量的学习资料,还有在线REPL。
本书从Kotlin 语言的基础语法讲起,逐步深入介绍了 Kotlin 的扩展函数、一等函数支持、 Lambda表达式、强大的DSL支持等特性,并深入实战讲解使用 Kotlin + Spring Boot 进行服务端开发,Kotlin 进行 Android 应用程序的开发,使读者对Kotlin 编程的整体知识有更为清晰的理解。
本书特色
1.内容由浅入深、深入浅出,内容讲解符合初学者的认知规律
本书内容涵盖了Kotlin 语言基础语法、类型系统与可空类型、类与面向对象编程、函数与函数式编程、扩展函数与属性、集合类、泛型、使用 Kotlin 创建 DSL、运算符重载与约定、元编程与注解反射等核心知识点,同时涵盖了 Kotlin + Spring Boot进行服务端开发、使用Kotlin开发 Android应用程序的实例讲解。从内容结构上非常注重知识的实用性和可操作性。整体结构的描述提纲挈领,内容讲解由浅入深、循序渐进,完全是遵循和尊重了初学者对编程语言学习的的认知规律。
2.案例丰富、图文并茂,以实例引导全程,特别适合初学者阅读
本书重点介绍的Kotlin可空类型与安全操作符、 面向对象编程与函数式编程、 Lambda 表达式、扩展函数与创建DSL等Kotlin语言的特性时都给出了丰富的代码示例,在介绍集合类与泛型的时候给出详尽简单易懂的图示,一看就懂。代码注释案例丰富,内容讲解生动有趣,图文并茂,这就使得整个学习Kotlin 语言的过程变得简单有趣起来。
相比于《Kotlin 极简教程》(笔者另外一本书),本书偏重于Kotlin编程的实战讲解,基础知识和语言特性讲解更加精简、重点突出。精简了编程实战中目前不大实用的内容,没有覆盖目前不常用的 Kotlin Native、实验阶段的协程(coroutine)两个专题。同时增加了在编程实践中较为常用的元编程与注解反射、运算符重载与约定两个章节。项目实战开发的两章Kotlin + Spring Boot进行服务端开发、使用Kotlin开发 Android应用程序的实例讲解都是全新的案例。
本书内容及体系结构
第1章Kotlin是什么
本章介绍Kotlin 编程语言的基本特性、编程哲学、学习工具、为什么要学 Kotlin、 JVM语言生态等内容。
第2章 Kotlin 语法基础
本章介绍 Kotlin 语言的语法基础知识。主要内容包括变量和标识符、关键字与修饰符、流程控制语句、操作符重载与优先级、包声明等内容。
第3章 类型系统与可空类型
本章介绍Kotlin 的类型系统、可空类型、安全操作符、特殊类型、类型检测与类型转换等内容。
第4章 类与面向对象编程
本章介绍Kotlin面向对象编程的特性。主要内容包括声明类、抽象类与接口、object对象、数据类、注解、枚举、内部类等内容。
第5章 函数与函数式编程
本章介绍Kotlin函数式编程特性。主要内容包括声明函数、Lambda表达式、高阶函数等内容。
第6章 扩展函数与属性
本章介绍 Kotlin扩展函数与属性的特性。
第7章 集合类
本章介绍 Kotlin集合类。主要内容包括常用的3种集合类、不可变集合类、创建集合类、遍历集合中的元素、映射函数、过滤函数、排序函数、元素去重等内容。
第8章 泛型
本章介绍 Kotlin的泛型。主要内容包括为何引入泛型、泛型接口、泛型类、泛型函数、类型上界、协变与逆变、out T与in T、类型擦除等内容。
第9章 文件IO操作、正则表达式与多线程
本章介绍 Kotlin 语言的文件IO操作、正则表达式与多线程等相关内容。
第10章 使用 Kotlin 创建 DSL
本章介绍怎样使用 Kotlin 语言创建 DSL 。主要内容包括什么是DSL、Kotlin的DSL特性支持,同时给出实现一个HTTP AJAX请求的DSL实例讲解。
第11章 运算符重载与约定
本章介绍 Kotlin运算符重载与约定。主要内容包括什么是运算符重载、重载二元算术运算符、自增自减一元运算符、比较运算符、计算赋值运算符等内容。
第12章 元编程与注解、反射
本章介绍 Kotlin元编程的相关内容。主要内容包括元编程简介、声明注解与处理注解、反射API、 类和函数的引用、绑定函数和属性引用、使用反射获取泛型信息等内容。
第13章 Kotlin 集成 Spring Boot 服务端开发
本章介绍Kotlin 集成 Spring Boot 服务端开发。给出了一个图片爬虫的Web应用实例讲解。
第14章 使用Kotlin 进行 Android 开发
本章介绍使用Kotlin 进行 Android 开发。给出了一个Kotlin 开发一个电影指南Android应用程序的实例讲解。
本书读者对象
编程初学者
Android 程序员
Java 程序员
需要Kotlin 编程入门工具书的人员
对编程有兴趣爱好的各类人员
因受作者水平和成书时间所限,本书难免存有疏漏和不当之处,敬请指正。
陈光剑 2017年11月 杭州
阿里巴巴资深程序员力作,知名公司7位技术大牛力荐;揭秘Kotlin编程精华,讲干货,不废话;两大项目实战案例:Kotlin+Spring Boot做服务端开发、Kotlin开发Android应用
纸质书:https://item.jd.com/12422687.html
电子书:https://cread.jd.com/read/startRead.action?bookId=30455045&readType=1
Kotlin开发者社区
专注分享 Java、 Kotlin、Spring/Spring Boot、MySQL、redis、neo4j、NoSQL、Android、JavaScript、React、Node、函数式编程、编程思想、"高可用,高性能,高实时"大型分布式系统架构设计主题。
网友评论