描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302502678
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
目 录
第1章 开启Kotlin编程之旅 1
1.1
Kotlin语言简介 1
1.2 示例 3
1.3 处理Kotlin代码 8
1.3.1
Kotlin Playground 8
1.3.2
Android Studio 10
1.4
Kotlin底层机制 16
1.5
Kotlin的其他优势 17
1.6 本章小结 18
第2章 Kotlin语言基础知识 19
2.1 变量 19
2.2 类型推断 21
2.3 严格的空保护机制 24
2.3.1
安全调用 27
2.3.2
elvis操作符 28
2.3.3
非空断言 29
2.3.4
let 30
2.4 可空性和Java 30
2.5 转换 32
2.5.1
安全/不安全转换操作符 32
2.5.2
智能转换 34
2.6 基本数据类型 37
2.6.1
数字 38
2.6.2
字符 40
2.6.3
数组 40
2.6.4
布尔类型 42
2.7 复合数据类型 42
2.7.1
字符串 42
2.7.2
范围 43
2.7.3
集合 45
2.8 语句和表达式 45
2.9 控制流 46
2.9.1
if语句 46
2.9.2
when表达式 47
2.9.3
循环 50
2.9.4
break和continue 52
2.10
异常 56
2.11
编译期常量 59
2.12
委托机制 59
2.13
本章小结 60
第3章 函数 61
3.1 基本的函数声明和应用 61
3.1.1
参数 62
3.1.2
返回函数 64
3.2
vararg参数 65
3.3 单表达式函数 67
3.4 尾递归函数 69
3.5 调用函数的不同方式 70
3.5.1
默认参数值 71
3.5.2
命名参数语法 71
3.6 函数 72
3.7 函数的底层机制 74
3.8 局部函数 76
3.9 无返回类型 77
3.10
本章小结 79
第4章 类和对象 80
4.1 类 80
4.2 属性 81
4.2.1
读-写属性和只读属性 84
4.2.2
属性访问语法 85
4.2.3
自定义getter/setter 88
4.2.4
延迟初始化属性 91
4.2.5
注解属性 92
4.2.6
内联属性 93
4.3 构造函数 93
4.3.1
属性和构造函数参数 95
4.3.2
包含默认参数的构造函数 96
4.4 继承 97
4.5 接口 101
4.6 数据类 105
4.6.1
equals和hashCode方法 106
4.6.2
toString方法 108
4.6.3
copy方法 109
4.6.4
解构声明 110
4.7 操作符重载 111
4.8 对象声明 115
4.9 对象表达式 117
4.10
伴生对象 119
4.11
枚举类 124
4.12
命名方法的中缀调用 127
4.13
可见性修饰符 130
4.14
密封类 134
4.15
嵌套类 136
4.16
导入别名 137
4.17
本章小结 138
第5章 函数—一等公民 140
5.1 函数类型 140
5.2 匿名函数 142
5.3
Lambda表达式 144
5.4 高阶函数 147
5.4.1
向函数提供操作 149
5.4.2
观察者(监听器)模式 150
5.4.3
线程操作后的回调 151
5.5 命名参数和Lambda表达式的组合 152
5.6 参数规则中后一个Lambda
152
5.6.1
命名代码的包围机制 154
5.6.2
利用LINQ风格处理数据结构 155
5.7
Kotlin中的Java SAM支持 156
5.8 命名Kotlin函数类型 158
5.8.1
函数类型中的命名参数 158
5.8.2
类型别名 160
5.9 针对未使用变量的下划线
162
5.10
Lambda表达式中的解构机制 162
5.11
内联函数 164
5.11.1
noinline修饰符 167
5.11.2
非本地返回 167
5.11.3
Lambda表达式中的标记返回 170
5.11.4
crossinline修饰符 173
5.11.5
inline属性 174
5.12
函数引用 175
5.13
本章小结 178
第6章 泛型 179
6.1 泛型概述 179
6.2 泛型约束条件 181
6.3 变型 184
6.3.1
变型修饰符 186
6.3.2
使用位置变型和声明位置变型 187
6.3.3
集合变型 189
6.3.4
变型的生产者/消费者限制条件 191
6.3.5
不可变构造函数 193
6.4 类型擦除 193
6.4.1
reified类型参数 195
6.4.2
startActivity方法 196
6.5 星号投射 197
6.6 类型参数命名规则 199
6.7 本章小结 200
第7章 扩展函数和属性 201
7.1 扩展函数 201
7.1.1
扩展函数底层机制 203
7.1.2
伴生对象扩展 206
7.1.3
通过扩展函数重载操作符 207
7.1.4
函数的应用位置 207
7.2 扩展属性 208
7.3 成员扩展函数和属性 211
7.3.1
接收者类型 214
7.3.2
成员扩展函数和属性的底层机制 216
7.4 泛型扩展函数 217
7.4.1
Kotlin集合类型层次结构 220
7.4.2
map、filter和flatMap函数 223
7.4.3
forEach和onEach函数 225
7.4.4
withIndex以及索引变化版本 225
7.4.5
sum、count、min、max和排序函数 226
7.4.6
其他流处理函数 229
7.4.7
集合流处理示例 230
7.4.8
序列 231
7.5 包含接收者的函数字面值
233
7.5.1
Kotlin标准库函数 234
7.5.2
特定领域内的语言 241
7.6 本章小结 248
第8章 委托机制 249
8.1 类委托 249
8.1.1
委托模式 249
8.1.2
装饰器模式 254
8.2 属性委托 256
8.2.1
属性委托的含义 256
8.2.2
预定义委托 259
8.2.3
自定义委托 272
8.3 本章小结 282
第9章 Marvel Gallery项目实战 283
9.1
Marvel Gallery应用程序 283
9.1.1
如何阅读本章内容 283
9.1.2
创建空项目 286
9.1.3 任务图片库 288
9.1.4
人物角色搜索 328
9.1.5
人物角色的资料显示 338
9.2 本章小结 353
val capitol = “England” to “London”println(capitol.first) // Prints: Englandprintln(capitol.second) // Prints: London
代码中的重点内容则采用黑体表示:
ext.kotlin_version = ‘1.1.3’repositories { maven { url ‘https://maven.google.com’ } jcenter()}
命令行输入或输出如下所示:
sdk install kotlin 图标表示较为重要的说明事项。 图标则表示提示信息和操作技巧。读者反馈和客户支持欢迎读者对本书的建议或意见予以反馈,以进一步了解读者的阅读喜好。反馈意见对于我们来说十分重要,以便改进我们日后的工作。对此,读者可向feedback@ packtpub.com发送邮件,并以书名作为邮件标题。若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问www.packtpub.com/ authors。对于本书的读者,我们将对每一名用户提供竭诚的服务。资源下载读者可访问http://www.packtpub.com并通过个人账户下载示例代码文件。另外,在http://www.packtpub.com/support中注册成功后,我们将以电子邮件的方式将相关文件发与读者。读者可根据下列步骤下载代码文件:● 通过个人电子邮件地址和密码登录并注册我们的网站。● 选择SUPPORT选项卡。● 单击Code Downloads & Errata。● 在Search文本框中输入书名。● 选择本书对应的代码文件。● 从下拉菜单中选择本书的购买方式。● 单击Code Download。● 当文件下载完毕后,确保使用下列版本软件解压文件夹:● Windows系统下的WinRAR/7-Zip。● Mac系统下的Zipeg/iZip/UnRarX。● Linux系统下的7-Zip/PeaZip。另外,读者还可访问GitHub获取本书的代码包,对应网址为https://github.com/Packt Publishing/Android-Development-with-Kotlin。此外,读者还可访问https://github.com/Packt Publishing/以了解丰富的代码和视频资源。勘误表尽管我们在程度上做到尽善尽美,但错误依然在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对于其他读者以及本书的再版工作,这将具有十分重要的意义。对此,读者可访问http://www.packtpub.com/submit-errata,选取对应书籍,单击ErrataSubmissionForm超链接,并输入相关问题的详细内容。经确认后,填写内容将被提交至网站,或添加至现有勘误表中(位于该书籍的Errata部分)。另外,读者还可访问http://www.packtpub.com/books/content/support查看之前的勘误表。在搜索框中输入书名后,所需信息将显示于Errata项中。版权须知一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题异常重视。若读者在互联网上发现本书任意形式的副本,请告知网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至[email protected]。对于作者的爱护,我们表示衷心的感谢,并于日后向读者呈现更为精彩的作品。问题解答若读者对本书有任何疑问,均可发送邮件至[email protected],我们将竭诚为您服务。
评论
还没有评论。