《Kotlin极简教程》.pdf [223.7M]

  • A+
所属分类:Android电子书

《Kotlin极简教程》.pdf [223.7M]

内容简介 · · · · · ·

本书从Kotlin的HelloWorld开始,生动讲解Kotlin的基础知识和实战案例,分为两大部分:“基础知识”部分包括语言基础、基本数据类型与类型变量、集合类、泛型、面向对象编程、函数式编程、协程等;“实战”部分包括Kotlin与Java互操作、使用Kotlin集成Spring Boot开发WEB服务端、使用Kotlin集成Gradle开发、使用Kotlin和Anko的Android开发、使用Kotlin DSL、Kotlin文件IO操作与多线程、使用Kotlin Native。本书包含了大量精选示例代码和应用案例,为初学者提供了实用指南,也帮助熟练的Java开发者快速切换到Kotlin

Kotlin是JetBrains团队开发的一门现代的、注重工程实用性的静态类型编程语言,JetBrains团队以开发了世界上最好用的IDE而著称。Kotlin于2010年推出,并在2011年开源。Kotlin充分借鉴并汲取了Java、Scala、Groovy、C#、Gosu、JavaScript、Swift等多门杰出语言的优秀特性,语法简单优雅、表现力丰富、抽象扩展方便、代码可重用性好,同时也支持面向对象和函数式编程的多范式编程。Kotlin可以编译成Java字节码运行在JVM平台和Android平台,也可以编译成JavaScript运行在浏览器环境,而且还可以直接编译成机器码的系统级程序,直接运行在嵌入式、iOS、MacOS/Linux/Windows等没有JVM环境的平台。Kotlin源自产业界,它解决了工程实践中程序设计所面临的真实痛点,例如,类型系统可以避免空指针异常的问题。

作者简介 · · · · · ·

陈光剑 资深开发人员,目前就职于阿里巴巴集团,参与过多种平台工具的开发,具有丰富的平台开发经验,操练过Java、Android、Scala、Groovy等语言进行领域建模、架构设计、工具开发,在工作中积累了大量经验,善于总结,乐于分享,发布过大量技术文章。

目录 · · · · · ·

序 言

前 言

第一部分 Kotlin语言基础

第1章 Kotlin简介 2

1.1 Kotlin简史 2

1.1.1 Kotlin概述 3

1.1.2 Kotlin元年:2016 3

1.2 快速学习工具 4

1.2.1 云端IDE 4

1.2.2 本地命令行环境搭建 5

1.2.3 使用IntelliJ IDEA 9

1.2.4 使用Eclipse 13

1.2.5 使用Gradle构建Kotlin项目 17

1.2.6 编程语言学习小结 18

1.3 本章小结 20

第2章 快速开始HelloWorld 21

2.1 命令行版HelloWorld 21

2.2 应用程序版HelloWorld 21

2.3 Web RESTful HelloWorld 24

2.4 Android版的HelloWorld 34

2.5 JavaScript版HelloWorld 39

2.6 本章小结 49

第3章 Kotlin语言基础 50

3.1 包 50

3.2 声明变量和值 56

3.3 变量类型推断 57

3.3.1 省去变量类型 57

3.3.2 使用is运算符进行类型检测 59

3.4 字符串与其模板表达式 59

3.5 流程控制语句 60

3.5.1 if表达式 60

3.5.2 when表达式 62

3.5.3 for循环 64

3.5.4 while循环 64

3.5.5 break和continue 65

3.5.6 return 66

3.5.7 标签 69

3.5.8 throw表达式 71

3.6 代码注释 72

3.7 语法与标识符 73

3.7.1 修饰符 73

3.7.2 关键字(保留字) 75

3.7.3 操作符和操作符的重载 81

3.7.4 操作符优先级 82

3.7.5 一元操作符 83

3.7.6 二元操作符 85

3.8 扩展函数和扩展属性 90

3.8.1 扩展函数 90

3.8.2 扩展属性 93

3.9 空指针安全 93

3.10 标准库API简介 96

3.11 本章小结 97

第4章 基本数据类型与类型系统 98

4.1 什么是类型 98

4.2 编译时类型与运行时类型 100

4.2.1 弱类型与强类型 100

4.2.2 静态类型与动态类型 101

4.2.3 显式类型与隐式类型 101

4.3 根类型Any 101

4.4 基本类型 102

4.4.1 数字类型 104

4.4.2 字符类型与转义符 109

4.4.3 布尔类型 111

4.4.4 字符串类型 112

4.4.5 数组类型 117

4.5 可空类型 120

4.5.1 Kotlin中的null 120

4.5.2 可空类型String?与安全调用?. 122

4.5.3 可空性的实现原理 124

4.5.4 可空类型层次体系 126

4.6 kotlin.Unit类型 127

4.7 kotlin.Nothing类型 128

4.8 类型检测与类型转换 131

4.8.1 is与!is运算符 131

4.8.2 as运算符 133

4.9 本章小结 134

第二部分 编程进阶

第5章 集合类 136

5.1 集合类的基本概念 136

5.1.1 集合类是一种数据结构 137

5.1.2 集合类是ADT 137

5.1.3 连续存储和离散存储 138

5.2 Kotlin集合类简介 138

5.3 List 139

5.3.1 创建不可变List 140

5.3.2 创建可变集合MutableList 142

5.3.3 遍历List元素 143

5.3.4 List元素操作函数 146

5.3.5 List集合类的基本运算函数 151

5.3.6 过滤操作函数 159

5.3.7 映射操作函数 166

5.3.8 分组操作函数 169

5.3.9 排序操作符 170

5.3.10 生产操作符 171

5.4 Set 174

5.4.1 空集 174

5.4.2 创建Set 176

5.4.3 使用Java中的Set类 177

5.4.4 Set元素的加减操作plus minus 179

5.5 Map 179

5.5.1 创建Map 180

5.5.2 访问Map的元素 184

5.5.3 Map操作符函数 186

5.6 本章小结 192

第6章 泛型 193

6.1 泛型简介 193

6.1.1 泛型与多态 193

6.1.2 为何引进泛型 194

6.1.3 Java与Kotlin中的泛型 195

6.2 型变 197

6.2.1 Java的类型通配符 197

6.2.2 泛型和数组的型变 201

6.3 Kotlin中的泛型 205

6.3.1 out T与in T 205

6.3.2 声明处型变 206

6.3.3 类型投影 206

6.4 泛型类 207

6.5 泛型函数 208

6.6 本章小结 208

第7章 面向对象编程 209

7.1 面向对象编程思想 209

7.1.1 一切皆是映射 209

7.1.2 二进制01与易经阴阳 211

7.1.3 从面向过程到面向对象 212

7.2 类与构造函数 215

7.2.1 声明类 216

7.2.2 构造函数 216

7.2.3 类的属性 218

7.2.4 函数(方法) 219

7.3 抽象类 219

7.3.1 抽象类的定义 219

7.3.2 抽象函数 220

7.3.3 抽象属性和抽象类 221

7.4 接口 223

7.4.1 接口定义 223

7.4.2 实现接口 224

7.4.3 覆盖冲突 225

7.4.4 接口中的属性 225

7.5 抽象类和接口的差异 226

7.6 继承 227

7.6.1 open类 227

7.6.2 多重继承 228

7.7 枚举类 230

7.7.1 枚举类基本用法 231

7.7.2 初始化枚举值 231

7.7.3 使用枚举常量 232

7.8 注解类 233

7.8.1 声明注解 233

7.8.2 使用注解 234

7.9 单例模式与伴生对象 234

7.9.1 单例模式 234

7.9.2 object对象 235

7.9.3 嵌套object对象 236

7.9.4 匿名object 238

7.9.5 伴生对象 239

7.10 密封类 242

7.11 数据类 243

7.11.1 构造函数中的val/var 243

7.11.2 领域实体类 245

7.11.3 数据类的概念 245

7.11.4 数据类的限制 246

7.11.5 数据类的解构 248

7.11.6 标准数据类Pair和Triple 248

7.12 嵌套类 249

7.12.1 嵌套类:类中的类 249

7.12.2 内部类 250

7.12.3 匿名内部类 250

7.13 委托 252

7.13.1 代理模式 252

7.13.2 类的委托 253

7.13.3 委托属性 255

7.14 本章小结 260

第8章 函数式编程 261

8.1 函数式编程概述 261

8.1.1 函数式编程与面向对象编程 262

8.1.2 函数式编程基本特性 265

8.1.3 函数式编程核心思想 266

8.2 在Kotlin中使用函数式编程 284

8.2.1 Kotlin中的函数 284

8.2.2 扩展函数 286

8.2.3 中缀函数 286

8.2.4 函数参数 287

8.2.5 函数返回类型 289

8.2.6 单表达式函数 289

8.2.7 函数作用域 289

8.2.8 泛型函数 290

8.2.9 高阶函数 290

8.2.10 匿名函数 291

8.2.11 Lambda表达式 291

8.2.12 it:单个参数的隐式名称 292

8.2.13 闭包 292

8.2.14 带接收者的函数字面值 293

8.2.15 具体化的类型参数 293

8.2.16 尾递归tailrec 294

8.3 本章小结 295

第9章 轻量级线程:协程 296

9.1 协程的基本概念 296

9.2 协程的基本操作 297

9.2.1 搭建项目 297

9.2.2 简单协程示例 298

9.2.3 使用launch函数启动协程 299

9.2.4 CommonPool对象 299

9.2.5 挂起函数 301

9.2.6 runBlocking函数 302

9.2.7 等待一个协程任务执行完毕 303

9.2.8 取消协程 306

9.2.9 协程取消失效 307

9.2.10 计算代码协程的取消方式 308

9.2.11 在f?inally中的协程代码 310

9.2.12 协程中不被取消的代码块 312

9.2.13 设置协程超时时间 313

9.3 挂起函数 314

9.3.1 按默认顺序执行 314

9.3.2 使用异步并发执行 315

9.4 协程上下文与调度器 316

9.4.1 调度和线程 316

9.4.2 父子协程 318

9.5 通道与管道 319

9.5.1 通道vs阻塞队列 319

9.5.2 关闭通道和迭代遍历元素 320

9.5.3 生产者-消费者模式 321

9.5.4 使用管道生产无限序列 322

9.5.5 管道与无穷质数序列 323

9.5.6 通道缓冲区 324

9.5.7 构建无穷惰性序列 324

9.6 协程与线程 325

9.6.1 轻量级的协程 325

9.6.2 协程vs守护线程 326

9.6.3 区别 327

9.6.4 协程的好处 328

9.6.5 Kotlin协程的内部机制 328

9.7 本章小结 329

第10章 Kotlin与Java互操作 330

10.1 在Kotlin中调用Java 330

10.1.1 调用Okhttp库示例 331

10.1.2 使用Java的集合类 332

10.1.3 调用Java中的Getter和Setter 333

10.1.4 调用Java中返回void的方法 334

10.1.5 调用来自Java中的null 335

10.1.6 使用Java的泛型 336

10.1.7 数组的互操作 337

10.1.8 可变参数的互操作 337

10.1.9 检查Java中的异常 337

10.1.10 调用Java的Object方法 338

10.1.11 访问Java静态成员 340

10.1.12 使用Java的反射 340

10.1.13 SAM转换 341

10.2 在Java中调用Kotlin 342

10.2.1 访问Kotlin属性 342

10.2.2 调用Kotlin的包级函数 344

10.2.3 调用Kotlin中的实例字段 347

10.2.4 调用Kotlin中的静态字段 348

10.2.5 调用Kotlin中的静态方法 349

10.2.6 Kotlin与Java的可见性 350

10.2.7 生成默认参数函数的重载 352

10.2.8 显式声明Kotlin中的异常 353

10.2.9 关键字冲突的互操作 355

10.2.10 Nothing类型 355

10.3 类型映射 356

10.4 Kotlin与Java的简单实例对比 357

10.5 本章小结 364

第三部分 综合实战

第11章 使用Kotlin集成Spring Boot开发Web服务端 366

11.1 Spring Boot简介 366

11.2 系统架构技术栈 367

11.3 准备工作 367

11.3.1 创建工程 367

11.3.2 Gradle配置文件说明 369

11.4 数据库层开发 370

11.4.1 Endpoint监控接口 373

11.4.2 实体类 375

11.4.3 数据访问层代码 377

11.5 后端逻辑开发 379

11.5.1 控制器逻辑层 379

11.5.2 启动初始化CommandLine-Runner 380

11.5.3 应用启动类 380

11.5.4 Model数据绑定 382

11.5.5 模板引擎视图页面 383

11.5.6 运行测试 383

11.6 前端后端集成 384

11.6.1 引入前端组件 384

11.6.2 实现写文章模块 386

11.6.3 加上导航栏 388

11.6.4 抽取公共模板文件 389

11.6.5 写文章的控制器层接口 390

11.6.6 前端Ajax请求 390

11.6.7 文章详情页 391

11.6.8 添加Markdown支持 393

11.6.9 文章列表分页搜索 395

11.7 Spring 5.0对Kotlin的支持 397

11.8 本章小结 399

第12章 使用Kotlin集成Gradle开发 400

12.1 使用Gradle构建Kotlin工程 400

12.2 使用Kotlin编写Gradle构建配置文件 405

12.3 本章小结 407

第13章 使用Kotlin和Anko的Android开发 408

13.1 什么是Anko 408

13.2 快速入门实例 409

13.2.1 功能介绍 410

13.2.2 使用Android Studio新建项目 411

13.2.3 设计UI界面主题颜色 415

13.2.4 核心依赖配置 417

13.2.5 代码编写 421

13.2.6 运行测试 435

13.3 本章小结 437

第14章 使用 Kotlin DSL 438

14.1 什么是DSL 439

14.2 Kotlin的DSL特性支持 441

14.3 使用kotlinx.html DSL写前端代码 442

14.4 实现一个极简的HTTP DSL 447

14.5 本章小结 454

第15章 Kotlin 文件IO操作与多线程 455

15.1 Kotlin IO基本操作 455

15.1.1 终端IO操作 455

15.1.2 读文件 456

15.1.3 写文件 457

15.1.4 遍历文件树 458

15.1.5 网络IO操作 459

15.1.6 kotlin.io标准库 460

15.1.7 执行Shell命令行 461

15.2 正则表达式 463

15.2.1 构造Regex表达式 463

15.2.2 Regex类中的函数 463

15.2.3 使用Java正则表达式类 465

15.3 Kotlin的多线程 466

15.3.1 创建线程 466

15.3.2 同步方法和块 467

15.3.3 可变字段 468

15.4 本章小结 469

第16章 使用 Kotlin Native 470

16.1 Kotlin Native简介 470

16.2 快速开始Hello World 471

16.3 Kotlin Native与C语言互操作 477

16.4 Kotlin Native编译器konan简介 486

16.5 本章小结 494

文件下载 资源名称:《Kotlin极简教程》.pdf [223.7M]
下载地址

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: