欢迎光临
梦想从学习开始!

Kotlin实战 | 小熊书籍

本文主要介绍 Kotlin实战 | 小熊书籍,小熊精心挑选的书籍希望对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以购买正版书籍进行阅读和学习。


作者: 【美】Dmitry Jemerov(德米特里·詹莫瑞福) / 【美】 Svetlana Isakova(斯维特拉娜·伊凡诺沃)
出版社: 电子工业出版社
出品方: 博文视点
译者: 覃宇 / 罗丽 / 李思阳 / 蒋扬海
出版年: 2017-8
页数: 360
定价: 89.00
装帧: 平装
ISBN: 9787121321580

《Kotlin 实战》将从语言的基本特性开始,逐渐覆盖其更多的高级特性,尤其注重讲解如何将 Koltin 集成到已有 Java 工程实践及其背后的原理。本书分为两个部分。第一部分讲解如何开始使用 Kotlin 现有的库和API,包括基本语法、扩展函数和扩展属性、数据类和伴生对象、lambda 表达式,以及数据类型系统(着重讲解了可空性和集合的概念)。第二部分教你如何使用 Kotlin 构建自己的 API,以及一些深层次特性——约定和委托属性、高阶函数、泛型、注解和反射,以及领域特定语言的构建。《Kotlin 实战》适合广大移动开发者及入门学习者,尤其是紧跟主流趋势的前沿探索者。

第 1 部分 Kotlin 简介 1
1 Kotlin :定义和目的 3
1.1 Kotlin 初体验 3
1.2 Kotlin 的主要特征4
1.2.1 目标平台 :服务器端、Android 及任何 Java 运行的地方 4
1.2.2 静态类型5
1.2.3 函数式和面向对象 6
1.2.4 免费并开源 7
1.3 Kotlin 应用8
1.3.1 服务器端的 Kotlin8
1.3.2 Android 上的 Kotlin 9
1.4 Kotlin 的设计哲学 10
1.4.1 务实10
1.4.2 简洁 11
1.4.3 安全12
1.4.4 互操作性 13
1.5 使用 Kotlin 工具 14
1.5.1 编译 Kotlin 代码 14
1.5.2 IntelliJ IDEA 和 Android Studio 插件 15
1.5.3 交互式 shell15
1.5.4 Eclipse 插件 15
1.5.5 在线 playground 15
1.5.6 Java 到 Kotlin 的转换器 16
1.6 小结16
2 Kotlin 基础 17
2.1 基本要素 :函数和变量 17
2.1.1 Hello,world!18
2.1.2 函数18
2.1.3 变量20
2.1.4 更简单的字符串格式化 :字符串模板 22
2.2 类和属性 23
2.2.1 属性24
2.2.2 自定义访问器 25
2.2.3 Kotlin 源码布局 :目录和包26
2.3 表示和处理选择 :枚举和“when” 28
2.3.1 声明枚举类28
2.3.2 使用“when”处理枚举类 29
2.3.3 在“when”结构中使用任意对象 30
2.3.4 使用不带参数的“when” 31
2.3.5 智能转换 :合并类型检查和转换32
2.3.6 重构 :用“when”代替“if” 34
2.3.7 代码块作为“if”和“when”的分支 35
2.4 迭代事物 :“while”循环和“for”循环 36
2.4.1 “while”循环36
2.4.2 迭代数字 :区间和数列 37
2.4.3 迭代 map 38
2.4.4 使用“in”检查集合和区间的成员39
2.5 Kotlin 中的异常 41
2.5.1 “try”“catch”和“finally” 41
2.5.2 “try”作为表达式 42
2.6 小结44
3 函数的定义与调用 45
3.1 在 Kotlin 中创建集合 45
3.2 让函数更好调用 47
3.2.1 命名参数 48
3.2.2 默认参数值49
3.2.3 消除静态工具类 :顶层函数和属性 50
3.3 给别人的类添加方法 :扩展函数和属性53
3.3.1 导入和扩展函数 54
3.3.2 从 Java 中调用扩展函数54
3.3.3 作为扩展函数的工具函数55
3.3.4 不可重写的扩展函数 56
3.3.5 扩展属性 58
3.4 处理集合 :可变参数、中缀调用和库的支持 59
3.4.1 扩展 Java 集合的 API 59
3.4.2 可变参数 :让函数支持任意数量的参数60
3.4.3 键值对的处理 :中缀调用和解构声明 60
3.5 字符串和正则表达式的处理 62
3.5.1 分割字符串62
3.5.2 正则表达式和三重引号的字符串63
3.5.3 多行三重引号的字符串 64
3.6 让你的代码更整洁 :局部函数和扩展 66
3.7 小结68
4 类、对象和接口 69
4.1 定义类继承结构 70
4.1.1 Kotlin 中的接口 70
4.1.2 open、final 和 abstract 修饰符 :默认为 final72
4.1.3 可见性修饰符 :默认为 public 75
4.1.4 内部类和嵌套类 :默认是嵌套类76
4.1.5 密封类 :定义受限的类继承结构79
4.2 声明一个带非默认构造方法或属性的类80
4.2.1 初始化类 :主构造方法和初始化语句块80
4.2.2 构造方法 :用不同的方式来初始化父类83
4.2.3 实现在接口中声明的属性85
4.2.4 通过 getter 或 setter 访问支持字段 87
4.2.5 修改访问器的可见性 88
4.3 编译器生成的方法 :数据类和类委托 89
4.3.1 通用对象方法 89
4.3.2 数据类 :自动生成通用方法的实现 92
4.3.3 类委托 :使用“by”关键字 93
4.4 “object”关键字 :将声明一个类与创建一个实例结合起来95
4.4.1 对象声明 :创建单例易如反掌 95
4.4.2 伴生对象 :工厂方法和静态成员的地盘98
4.4.3 作为普通对象使用的伴生对象 100
4.4.4 对象表达式 :改变写法的匿名内部类 102
4.5 小结 104
5 Lambda 编程 105
5.1 Lambda 表达式和成员引用 105
5.1.1 Lambda 简介 :作为函数参数的代码块106
5.1.2 Lambda 和集合 107
5.1.3 Lambda 表达式的语法 108
5.1.4 在作用域中访问变量 111
5.1.5 成员引用 114
5.2 集合的函数式 API 116
5.2.1 基础 :filter 和 map 116
5.2.2 “all”“any”“count”和“find”: 对集合应用判断式 118
5.2.3 groupBy :把列表转换成分组的 map 119
5.2.4 flatMap 和 flatten :处理嵌套集合中的元素120
5.3 惰性集合操作 :序列121
5.3.1 执行序列操作 :中间和末端操作 123
5.3.2 创建序列 125
5.4 使用 Java 函数式接口 126
5.4.1 把 lambda 当作参数传递给 Java 方法127
5.4.2 SAM 构造方法 :显式地把 lambda 转换成函数式接口 129
5.5 带接收者的 lambda :“with”与“apply”131
5.5.1 “with”函数131
5.5.2 “apply”函数 133
5.6 小结 135
6 Kotlin 的类型系统137
6.1 可空性137
6.1.1 可空类型 138
6.1.2 类型的含义 140
6.1.3 安全调用运算符 :“?:”141
6.1.4 Elvis 运算符 :“?:” 143
6.1.5 安全转换 :“as?” 145
6.1.6 非空断言 :“!!”146
6.1.7 “let”函数148
6.1.8 延迟初始化的属性 149
6.1.9 可空类性的扩展 151
6.1.10 类型参数的可空性 153
6.1.11 可空性和 Java 153
6.2 基本数据类型和其他基本类型 157
6.2.1 基本数据类型 :Int、Boolean 及其他158
6.2.2 可空的基本数据类型 :Int?、Boolean? 及其他159
6.2.3 数字转换 160
6.2.4 “Any”和“Any?”:根类型 162
6.2.5 Unit 类型 :Kotlin 的“void”163
6.2.6 Nothing 类型 :“这个函数永不返回” 164
6.3 集合与数组 164
6.3.1 可空性和集合165
6.3.2 只读集合与可变集合167
6.3.3 Kotlin 集合和 Java 168
6.3.4 作为平台类型的集合171
6.3.5 对象和基本数据类型的数组173
6.4 小结 175
第 2 部分 拥抱 Kotlin 177
7 运算符重载及其他约定179
7.1 重载算术运算符 180
7.1.1 重载二元算术运算 180
7.1.2 重载复合赋值运算符183
7.1.3 重载一元运算符 184
7.2 重载比较运算符 186
7.2.1 等号运算符 :“equals" 186
7.2.2 排序运算符 :compareTo187
7.3 集合与区间的约定 188
7.3.1 通过下标来访问元素 :“get”和“set” 188
7.3.2 “in”的约定190
7.3.3 rangeTo 的约定 191
7.3.4 在“for”循环中使用“iterator”的约定 192
7.4 解构声明和组件函数193
7.4.1 解构声明和循环 194
7.5 重用属性访问的逻辑 :委托属性 195
7.5.1 委托属性的基本操作196
7.5.2 使用委托属性 :惰性初始化和“by lazy()”197
7.5.3 实现委托属性198
7.5.4 委托属性的变换规则202
7.5.5 在 map 中保存属性值 203
7.5.6 框架中的委托属性 204
7.6 小结 205
8 高阶函数 :Lambda 作为形参和返回值 207
8.1 声明高阶函数207
8.1.1 函数类型 208
8.1.2 调用作为参数的函数209
8.1.3 在 Java 中使用函数类 211
8.1.4 函数类型的参数默认值和 null 值 212
8.1.5 返回函数的函数 214
8.1.6 通过 lambda 去除重复代码 216
8.2 内联函数 :消除 lambda 带来的运行时开销218
8.2.1 内联函数如何运作 219
8.2.2 内联函数的限制 221
8.2.3 内联集合操作222
8.2.4 决定何时将函数声明成内联223
8.2.5 使用内联 lambda 管理资源 223
8.3 高阶函数中的控制流225
8.3.1 lambda 中的返回语句 :从一个封闭的函数返回225
8.3.2 从 lambda 返回 :使用标签返回226
8.3.3 匿名函数 :默认使用局部返回 228
8.4 小结 229
9 泛型 231
9.1 泛型类型参数232
9.1.1 泛型函数和属性 232
9.1.2 声明泛型类 234
9.1.3 类型参数约束235
9.1.4 让类型形参非空 237
9.2 运行时的泛型 :擦除和实化类型参数 238
9.2.1 运行时的泛型 :类型检查和转换 238
9.2.2 声明带实化类型参数的函数241
9.2.3 使用实化类型参数代替类引用 243
9.2.4 实化类型参数的限制244
9.3 变型 :泛型和子类型化 245
9.3.1 为什么存在变型 :给函数传递实参245
9.3.2 类、类型和子类型 246
9.3.3 协变 :保留子类型化关系 248
9.3.4 逆变 :反转子类型化关系 252
9.3.5 使用点变型 :在类型出现的地方指定变型254
9.3.6 星号投影 :使用 * 代替类型参数 257
9.4 小结 261
10 注解与反射 263
10.1 声明并应用注解264
10.1.1 应用注解264
10.1.2 注解目标265
10.1.3 使用注解定制 JSON 序列化 267
10.1.4 声明注解269
10.1.5 元注解 :控制如何处理一个注解 270
10.1.6 使用类做注解参数 271
10.1.7 使用泛型类做注解参数272
10.2 反射 :在运行时对 Kotlin 对象进行自省 273
10.2.1 Kotlin 反射 API :KClass、KCallable、KFunction 和KProperty 274
10.2.2 用反射实现对象序列化278
10.2.3 用注解定制序列化 279
10.2.4 JSON 解析和对象反序列化283
10.2.5 反序列化的最后一步 :callBy() 和使用反射创建对象 287
10.3 小结 291
11 DSL 构建 293
11.1 从 API 到 DSL 293
11.1.1 领域特定语言的概念 295
11.1.2 内部 DSL296
11.1.3 DSL 的结构 297
11.1.4 使用内部 DSL 构建 HTML298
11.2 构建结构化的 API:DSL 中带接收者的 lambda 299
11.2.1 带接收者的 lambda 和扩展函数类型 299
11.2.2 在 HTML 构建器中使用带接收者的 lambda 303
11.2.3 Kotlin 构建器 :促成抽象和重用307
11.3 使用“invoke”约定构建更灵活的代码块嵌套 310
11.3.1 “invoke”约定 :像函数一样可以调用的对象 310
11.3.2 “invoke”约定和函数式类型 311
11.3.3 DSL 中的“invoke”约定 :在 Gradle 中声明依赖 312
11.4 实践中的 Kotlin DSL 314
11.4.1 把中缀调用链接起来 :测试框架中的“should” 314
11.4.2 在基本数据类型上定义扩展 :处理日期 316
11.4.3 成员扩展函数 :为 SQL 设计的内部 DSL317
11.4.4 Anko :动态创建 Android UI 320
11.5 小结 322
A 构建 Kotlin 项目 323
B Kotlin 代码的文档化 327
C Kotlin 生态系统 331
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小熊分享邦(www.xxfxb.com),支持正版书籍,谢谢。

赞(0) 打赏
未经允许不得转载:小熊分享邦 » Kotlin实战 | 小熊书籍

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏