《Kotlin编程权威指南》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)乔希·斯基恩(Josh Skeen),(美)戴维·格林哈尔希
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2019
  • ISBN:9787115515636
  • 页数:324 页
图书介绍:本书由知名培训机构Big Nerd Ranch打造,秉承其一贯的简洁、实用的写作风格。Kotlin已成为Android官方支持的开发语言,但它具有平台独立性,亦可用于开发各种类型的原生应用。本书将带领你循序渐进地掌握Kotlin的用法,从较为基础的变量、常量、类型等讲起,逐渐深入到继承、对象和抽象类。最后是函数式编程、Kotlin与Java互操作、构建Android应用等较复杂的内容。

第1章 Kotlin应用开发初体验 1

1.1安装IntelliJ IDEA 1

1.2第一个Kotlin项目 2

1.2.1创建首个Kotlin文件 5

1.2.2运行Kotlin文件 7

1.3Kotlin REPL 8

1.4深入学习:为什么要用IntelliJ 10

1.5深入学习:面向JVM 10

1.6挑战练习:使用REPL研究Kotlin中的算数运算符 11

第2章 变量、常量和类型 12

2.1数据类型 12

2.2声明变量 12

2.3Kotlin的内置数据类型 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.1if/else语句 24

3.1.1添加更多条件 27

3.1.2if/else嵌套语句 28

3.1.3更优雅的条件语句 29

3.2range 33

3.3when表达式 34

3.4string模板 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.8Unit函数 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.4it关键字 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.2Kotlin的null类型 72

6.3编译时间与运行时间 73

6.4null安全 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.7null:真的一无是处吗 85

6.8深入学习:已检查异常与未检查异常 86

6.9深入学习:可空性该如何保证 86

第7章 字符串 88

7.1字符串截取 88

7.1.1substring 88

7.1.2split 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.5Int类型转Double类型 101

8.6Double类型格式化 102

8.7Double类型转换为Int类型 103

8.8深入学习:位运算 104

8.9挑战练习:还剩多少酒 105

8.10挑战练习:解决负数余额问题 105

8.11挑战练习:龙币 105

第9章 标准库函数 106

9.1apply 106

9.2let 107

9.3run 108

9.4with 109

9.5also 109

9.6takeIf 110

9.7使用标准库函数 110

第10章 List与Set 112

10.1List 112

10.1.1获取列表元素 113

10.1.2更改列表内容 116

10.2遍历 119

10.3将文件数据读取到列表 122

10.4解构 124

10.5Set 124

10.5.1创建一个Set集合 124

10.5.2向Set集合中添加元素 125

10.6while循环 128

10.7break表达式 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.4Kotlin类层次 186

14.4.1类型转换 187

14.4.2智能类型转换 188

14.5深入学习:Any 189

第15章 对象 190

15.1object关键字 190

15.1.1对象声明 190

15.1.2对象表达式 195

15.1.3伴生对象 195

15.2嵌套类 196

15.3数据类 199

15.3.1toString 200

15.3.2equals 200

15.3.3copy 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.5vararg关键字与get函数 228

17.6in与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.9Kotlin标准库中的扩展 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.4getter和setter方法与互操作性 263

20.5类之外 265

20.6异常与互操作性 272

20.7Java中的函数类型 275

第21章 用Kotlin开发首个Android应用 277

21.1Android Studio 277

21.1.1Gradle配置 281

21.1.2项目组织 283

21.2定义UI 283

21.3用模拟器运行应用 286

21.4生成角色 287

21.5Activity类 288

21.6实例化视图 289

21.7Kotlin 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.3Android主线程 305

22.4启用协程 305

22.5使用async指定协程 305

22.6launch与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