logo
分类于: 人工智能 职场办公

简介

Kotlin编程权威指南

Kotlin编程权威指南 0.0分

资源最后更新于 2020-07-21 20:53:18

作者:[美] 乔希•斯基恩

译者:王明发

出版社:人民邮电出版社

出版日期:2019-01

ISBN:9787115515636

文件格式: pdf

标签: Kotlin 编程 电子书 kotlin

简介· · · · · ·

本书由知名技术培训机构Big Nerd Ranch打造,秉承其一贯的简洁、实用的写作风格。Kotlin已成为Android官方支持的开发语言,但它具有平台独立性,亦可用于开发各种类型的原生应用。本书将带领你通过搭建书中的示例项目来循序渐进地掌握Kotlin 的用法。首先使用IntelliJ IDEA搭建沙盒项目,帮助你熟悉开发环境。接下来介绍Kotlin编程知识,从较为基础的变量、常量、类型等讲起,逐渐深入到继承、对象和抽象类。最后是函数式编程、Kotlin与Java互操作、构建Android应用等较复杂的内容。每一章都配有习题,帮你温故知新,巩固所学知识。

● 源自大名鼎鼎的Big Nerd Ranch训练营培训讲义,该训练营已经为Google、Facebook、微软等行业巨头培养了众多专业人才。

● 以循序渐进的方式精心编排章节,从基础的变量与集...

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

第1章 Kotlin应用开发初体验  1
1.1 安装IntelliJ IDEA  1
1.2 第一个Kotlin项目  2
1.2.1 创建首个Kotlin文件  5
1.2.2 运行Kotlin文件  7
1.3 Kotlin REPL  8
1.4 深入学习:为什么要用IntelliJ  10
1.5 深入学习:面向JVM  10
1.6 挑战练习:使用REPL研究Kotlin中的算数运算符  11
第2章 变量、常量和类型  12
2.1 数据类型  12
2.2 声明变量  12
2.3 Kotlin的内置数据类型  14
2.4 只读变量  15
2.5 类型推断  17
2.6 编译时常量  19
2.7 查看Kotlin字节码  19
2.8 深入学习:Kotlin中的Java基本数据类型  21
2.9 挑战练习:定义hasSteed变量  22
2.10 挑战练习:独角兽之角  22
2.11 挑战练习:魔镜  23
第3章 条件语句  24
3.1 if/else语句  24
3.1.1 添加更多条件  27
3.1.2 if/else嵌套语句  28
3.1.3 更优雅的条件语句  29
3.2 range  33
3.3 when表达式  34
3.4 string模板  36
3.5 挑战练习:range研究  37
3.6 挑战练习:优化玩家光环展示  38
3.7 挑战练习:可配置的玩家状况报告格式  38
第4章 函数  40
4.1 使用函数重构代码  40
4.2 函数结构剖析  42
4.2.1 函数头  42
4.2.2 函数体  44
4.2.3 函数作用域  45
4.3 调用函数  46
4.4 以函数重构代码  46
4.5 自定义函数  48
4.6 默认值参  49
4.7 单表达式函数  50
4.8 Unit函数  51
4.9 具名函数参数  52
4.10 深入学习:Nothing类型  53
4.11 深入学习:Java中的文件级函数  54
4.12 深入学习:函数重载  55
4.13 深入学习:反引号中的函数名  56
4.14 挑战练习:单表达式函数  57
4.15 挑战练习:Fireball醉酒程度  57
4.16 挑战练习:醉酒状态报告  57
第5章 匿名函数与函数类型  58
5.1 匿名函数  58
5.1.1 函数类型  59
5.1.2 隐式返回  60
5.1.3 函数参数  61
5.1.4 it关键字  61
5.1.5 多个参数  62
5.2 类型推断  63
5.3 定义参数是函数的函数  63
5.4 函数内联  65
5.5 函数引用  66
5.6 函数类型作为返回类型  68
5.7 深入学习:Kotlin中的lambda就是闭包  69
5.8 深入学习:lambda与匿名内部类  69
第6章 null安全与异常  71
6.1 可空性  71
6.2 Kotlin的null类型  72
6.3 编译时间与运行时间  73
6.4 null安全  74
6.4.1 选项一:安全调用操作符  75
6.4.2 选项二:使用!!.操作符  76
6.4.3 选项三:使用if判断null值情况  77
6.5 异常  79
6.5.1 抛出异常  80
6.5.2 自定义异常  81
6.5.3 处理异常  82
6.6 先决条件函数  83
6.7 null:真的一无是处吗  85
6.8 深入学习:已检查异常与未检查异常  86
6.9 深入学习:可空性该如何保证  86
第7章 字符串  88
7.1 字符串截取  88
7.1.1 substring  88
7.1.2 split  90
7.2 字符串操作  92
7.3 字符串比较  93
7.4 深入学习:Unicode  95
7.5 深入学习:遍历字符  95
7.6 挑战练习:改进toDragonSpeak函数  96
第8章 数  97
8.1 数字类型  97
8.2 整数  98
8.3 小数数字  99
8.4 字符串转数值类型  100
8.5 Int类型转Double类型  101
8.6 Double类型格式化  102
8.7 Double类型转换为Int类型  103
8.8 深入学习:位运算  104
8.9 挑战练习:还剩多少酒  105
8.10 挑战练习:解决负数余额问题  105
8.11 挑战练习:龙币  105
第9章 标准库函数  106
9.1 apply  106
9.2 let  107
9.3 run  108
9.4 with  109
9.5 also  109
9.6 takeIf  110
9.7 使用标准库函数  110
第10章 List与Set  112
10.1 List  112
10.1.1 获取列表元素  113
10.1.2 更改列表内容  116
10.2 遍历  119
10.3 将文件数据读取到列表  122
10.4 解构  124
10.5 Set  124
10.5.1 创建一个Set集合  124
10.5.2 向Set集合中添加元素  125
10.6 while循环  128
10.7 break表达式  129
10.8 集合转换  129
10.9 深入学习:数组类型  130
10.10 深入学习:只读与不可变  131
10.11 挑战练习:美化酒水单  132
10.12 挑战练习:进一步美化酒水单  132
第11章 Map  133
11.1 创建一个Map  133
11.2 读取Map集合的值  135
11.3 向Map集合添加项  136
11.4 修改Map集合值  137
11.5 挑战练习:守卫小客栈  140
第12章 定义类  141
12.1 定义一个类  141
12.2 构造实例  141
12.3 类函数  142
12.4 可见性与封装  143
12.5 类属性  144
12.5.1 属性getter与setter  146
12.5.2 属性可见性  148
12.5.3 计算属性  149
12.6 重构NyetHack  149
12.7 使用包  156
12.8 深入学习:细看var与val属性  157
12.9 深入学习:防范竞态条件  160
12.10 深入学习:私有包  161
第13章 初始化  162
13.1 构造函数  162
13.1.1 主构造函数  163
13.1.2 在主构造函数里定义属性  164
13.1.3 次构造函数  164
13.1.4 默认参数  166
13.1.5 命名参数  167
13.2 初始化块  167
13.3 属性初始化  168
13.4 初始化顺序  170
13.5 延迟初始化  172
13.5.1 延迟初始化  172
13.5.2 惰性初始化  173
13.6 深入学习:初始化陷阱  174
13.7 挑战练习:圣剑之谜  176
第14章 继承  178
14.1 定义Room类  178
14.2 创建子类  179
14.3 类型检测  184
14.4 Kotlin类层次  186
14.4.1 类型转换  187
14.4.2 智能类型转换  188
14.5 深入学习:Any  189
第15章 对象  190
15.1 object关键字  190
15.1.1 对象声明  190
15.1.2 对象表达式  195
15.1.3 伴生对象  195
15.2 嵌套类  196
15.3 数据类  199
15.3.1 toString  200
15.3.2 equals  200
15.3.3 copy  200
15.3.4 解构声明  201
15.4 枚举类  202
15.5 运算符重载  203
15.6 探索NyetHack游戏世界  205
15.7 深入学习:定义结构比较  208
15.8 深入学习:代数数据类型  210
15.9 挑战练习:“quit”命令  211
15.10 挑战练习:魔力地图  212
15.11 挑战练习:摇铃  212
第16章 接口与抽象类  213
16.1 定义接口  213
16.2 实现接口  214
16.3 默认实现  216
16.4 抽象类  217
16.5 在NyetHack游戏里打怪  219
第17章 泛型  223
17.1 定义泛型类  223
17.2 泛型函数  224
17.3 多泛型参数  225
17.4 泛型约束  227
17.5 vararg关键字与get函数  228
17.6 in与out  230
17.7 深入学习:reified关键字  234
第18章 扩展  236
18.1 定义扩展函数  236
18.2 泛型扩展函数  237
18.3 扩展属性  239
18.4 可空类扩展  240
18.5 扩展实现揭秘  241
18.6 用扩展封装代码  241
18.7 定义扩展文件  243
18.8 重命名扩展  245
18.9 Kotlin标准库中的扩展  245
18.10 深入学习:带接收者的函数字面量  246
18.11 挑战练习:toDragonSpeak扩展  247
18.12 挑战练习:frame扩展  247
第19章 函数式编程基础  248
19.1 函数类别  248
19.1.1 变换  248
19.1.2 过滤  250
19.1.3 合并  251
19.2 为什么要学习函数式编程  252
19.3 序列  253
19.4 深入学习:评估代码性能  254
19.5 深入学习:Arrow.kt  255
19.6 挑战练习:Map值反转  255
19.7 挑战练习:应用函数式编程  256
19.8 挑战练习:滑窗算法  257
第20章 Kotlin与Java互操作  258
20.1 与Java类互操作  258
20.2 互操作性与可空性  259
20.3 类型映射  262
20.4 getter和setter方法与互操作性  263
20.5 类之外  265
20.6 异常与互操作性  272
20.7 Java中的函数类型  275
第21章 用Kotlin开发首个Android应用  277
21.1 Android Studio  277
21.1.1 Gradle配置  281
21.1.2 项目组织  283
21.2 定义UI  283
21.3 用模拟器运行应用  286
21.4 生成角色  287
21.5 Activity类  288
21.6 实例化视图  289
21.7 Kotlin Android扩展  291
21.8 设置单击事件监听器  293
21.9 保存实例状态  294
21.10 使用扩展重构代码  296
21.11 深入学习:Android KTX与Anko库  298
第22章 Kotlin协程简介  300
22.1 解析角色数据  300
22.2 获取动态数据  302
22.3 Android主线程  305
22.4 启用协程  305
22.5 使用async指定协程  305
22.6 launch与async/await  307
22.7 挂起函数  307
22.8 挑战练习:动态数据  308
22.9 挑战练习:最小力量值  308
第23章 编后语  309
23.1 前方的路  309
23.2 插个广告  309
23.3 致谢  309
附录A 补充挑战练习  310
术语表  316