零基础学Kotlin编程 pdf

零基础学Kotlin编程

内容简介

本书详细阐述了与Kotlin程序设计相关的基本解决方案,主要包括Kotlin语言基础知识、函数、类和对象、泛型、扩展函数和属性、委托机制,以及Marvel Gallery项目实战等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。

作者简介

[美] 马尔钦·莫斯卡拉,[美] 伊戈尔·沃 著

目录

第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

感悟与笔记

Kotlin 和 java 都是一种静态类型的编程语言。表达式的类型在编译期已经确定,编译期能验证对象是否包含想访问方法或是字段,维护正确性与性能的同时保持源代码的简洁

静态类型的优点:

  • 性能——方法调用速度更快,因为不需要在运行时才来判断调用的哪个方法
  • 可靠性——编译器验证了程序的正确性,因而运行时崩溃的概率更低
  • 可维护性——抹身代码更容易维护,因为你可以看到代码中用到的对象的类型
  • 工具支持——静态类型使IDE能提供可靠的重构,精确的代码补全特性
    • 动态类型 编程语言:Groovy、Ruby
    • 允许定义可以存储任何数据类型的变量,或者返回任何数据类型的函数,并在运行时才解析方法和字段引用。
  • 优点:减少代码量增加创建数据结构的灵活性
  • 缺陷:在编译期不能通过编译期发现拼写类错误,继而导致在运行时出现错误

Kotlin 的特点

一门务实、简洁、安全的语言,专注于互操作性。

Kotlin 语言的优势

  1. 简洁
    • 相对于Android、java会减少很多代码;可以通过类型推导的方式判断对象的数据类型
  2. 安全
    • kotlin是空安全的处理的,在编译期就处理了各种null的情况避免空指针时出现在运行时,通过“?”字符
    • kotlin在类型转换的时候会将检查和转换被组合成一次操作,一旦检查过类型,就不需要额外的转换就能直接引用属于这类的成员
  3. 扩展函数
    • 即使没有权限去访问某个类,也可以扩展这个类的更多特性
  4. 函数式编程
    • kotlin也是基于面向对象的语言。通过lambda表达式,高阶函数等方式更方便的解决问题
  5. 高度互操作性
    • 可以继续使用java的代码,比如java方法,继承java类,实现java接口及注解和依赖库,或是混合kotlin和java两种语言混合编写

函数式编程

  1. 头等函数
    • 把函数(一部分行为)当作值使用,可以用变量保存它,把它当作参数传递,或者当作其他函数的返回值
  2. 不可变性
    • 使用不可变对象,这保证了它们的状态在其创建之后不能再变化
  3. 无副作用
    • 使用的是纯函数。此类函数在输入相同时会产生同样的结果,并且不会修改其他对象的状态,也不和其他交互
  4. 多线程安全
    • 多线程程序中最大的错误来源之一就是,在没有采用适当同步机制的情况下,在不同的线程上修改同一份数据。假如使用了不可变数据结构和纯函数,就能在一定程度上保证这样不安全的修改根本不会发生了
  5. 易于测试
    • 没有副作用的函数,可以独立地进行测试,不需要其他繁杂的代码来支撑整个环境

会员免费下载

链接:https://pan.baidu.com/s/1PxePmgk0URH96S41sFsYvQ

提取码: ****** 查看

¥69/年 开通VIP会员

成为本站VIP会员即可无限下载。 请先点击百度网盘,看资源是否还在,不在请点击链接通知站长补资源。

资源标签点击标签可查看对应分类的资源

其他Android

资源推荐

免费 图解数据结构:使用Java

C++ 程序设计语言:第4部分 标准库(原书第4版)

C++编程思想(两卷合订本)

CSS世界

JavaScript DOM编程艺术(第2版)

C++ Primer Plus(第6版) 中文版

Vue.js快速入门

Java编程思想(第4版) [thinking in java]

Copyright © 2021-2022 知识猫. All Rights Reserved.