图书介绍

KOTLIN实战2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

KOTLIN实战
  • (俄)DMITRY JEMEROV,SVETLANA ISAKOVA著;覃宇,罗丽,李思阳,蒋扬海译 著
  • 出版社: 北京市:电子工业出版社
  • ISBN:9787121321580
  • 出版时间:2017
  • 标注页数:334页
  • 文件大小:63MB
  • 文件页数:360页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

KOTLIN实战PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第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上的Kotlin9

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 在线playground15

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 迭代map38

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集合的API59

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 可见性修饰符:默认为public75

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 集合的函数式API116

5.2.1 基础:filter和map116

5.2.2 “all”“any”“count”和“find”:对集合应用判断式118

5.2.3 groupBy:把列表转换成分组的map119

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 可空性和Java153

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集合和Java168

6.3.4 作为平台类型的集合171

6.3.5 对象和基本数据类型的数组173

6.4 小结175

第2部分 拥抱Kotlin177

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和KProperty274

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到DSL293

11.1.1 领域特定语言的概念295

11.1.2 内部DSL296

11.1.3 DSL的结构297

11.1.4 使用内部DSL构建HTML298

11.2 构建结构化的API:DSL中带接收者的lambda299

11.2.1 带接收者的lambda和扩展函数类型299

11.2.2 在HTML构建器中使用带接收者的lambda303

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 DSL314

11.4.1 把中缀调用链接起来:测试框架中的“should”314

11.4.2 在基本数据类型上定义扩展:处理日期316

11.4.3 成员扩展函数:为SQL设计的内部DSL317

11.4.4 Anko:动态创建Android UI320

11.5 小结322

A 构建Kotlin项目323

B Kotlin代码的文档化327

C Kotlin生态系统331

热门推荐