网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 Scala编程
分类
作者 奥德斯基//莱斯彭//凡纳斯
出版社 电子工业出版社
下载
简介
编辑推荐

不过本书还不止是一部编程语言的教材,它还是一部编程方法论的说明。由于本书三位作者同时也是Scala语言的设计和开发者,所以想要了解个中秘密真是再也找不到更好的透露者了。通过本书你不但能够学习到这种语言的语义语法结构、应用场景、用法、实例,还能够发现语言作者在这些结构之后的考量、动机、权衡和折中,从中可以领悟到许多编程专家的思维模式,学习到他们处理问题的方法,从而开拓你的眼界,让你不仅在软件代码开发方面,而且还在软件的架构设计思想上面有新的感悟。

内容推荐

本书介绍了一种新的编程语言,它把面向对象和函数式编程概念有机地结合为整体,从而形成一种完整统一、语义丰富的新思维体系。本书循序渐进,由浅入深,经作者精心组织、仔细编排,将语言中的各种概念自然地铺陈在字里行间。除此之外,本书还包含了大量富有针对性和趣味性的示例,它们除了提供对语言各个方面的具体演示之外,还从侧面说明了如何将函数式编程的理念切实并广泛地应用到面向对象编程中。本书面向的读者是有一定编程经验的开发人员,他们希望能够开拓眼界,并致力于提高在软件开发各方面的技能。

目录

清单

前言

致谢

导读

第1章 可伸展的语言 3

 1.1 与你一同成长的语言 3

 1.2 是什么让Scala具有可扩展性? 6

 1.3 为什么选择Scala? 8

 1.4 Scala的根源 13

 1.5 小结 14

第2章 Scala入门初探 15

 2.1第一步 学习使用Scala解释器 15

 2.2第二步 变量定义 16

 2.3第三步 函数定义 18

 2.4第四步 编写Scala脚本 19

 2.5第五步 用while做循环;用if做判断 20

 2.6第六步 用foreach和for做枚举 21

 2.7 小结 22

第3章 Scala入门再探 23

 3.1第七步 使用类型参数化数组(Array) 23

 3.2第八步 使用列表(List) 25

 3.3第九步 使用元组(Tuple) 28

 3.4第十步 使用集(set)和映射(map) 29

 3.5第十一步 学习识别函数式风格 32

 3.6第十二步 从文件里读取文本行 34

 3.7 小结 36

第4章 类和对象 37

 4.1 类、字段和方法 37

 4.2 分号推断 40

 4.3 Singleton对象 41

 4.4 Scala程序 43

 4.5 Application特质 45

 4.6 小结 45

第5章 基本类型和操作 47

 5.1 基本类型 47

 5.2 字面量 48

 5.3 操作符和方法 52

 5.4 数学运算 54

 5.5 关系和逻辑操作 55

 5.6 位操作符 56

 5.7 对象相等性 57

 5.8 操作符的优先级和关联性 58

 5.9 富包装器 60

 5.10 小结 60

第6章 函数式对象 61

 6.1 类Rational的规格说明书 61

 6.2 创建Rational 62

 6.3 重新实现toString方法 63

 6.4 检查先决条件 63

 6.5 添加字段 64

 6.6 自指向 65

 6.7 辅助构造器 65

 6.8 私有字段和方法 66

 6.9 定义操作符 67

 6.10 Scala的标识符 68

 6.11 方法重载 70

 6.12 隐式转换 71

 6.13 一番告诫 72

 6.14 小结 72

第7章 内建控制结构 73

 7.1 if表达式 73

 7.2 while循环 74

 7.3 for表达式 76

 7.4 使用try表达式处理异常 80

 7.5 匹配(match)表达式 82

 7.6 不再使用break和continue 83

 7.7 变量范围 84

 7.8 重构指令式风格的代码 87

 7.8 小结 88

第8章 函数和闭包 89

 8.1 方法 89

 8.2 本地函数 90

 8.3 头等函数 91

 8.4 函数字面量的短格式 93

 8.5 占位符语法 93

 8.6 部分应用函数 94

 8.7 闭包 96

 8.8 重复参数 98

 8.9 尾递归 99

 8.10 小结 102

第9章 控制抽象 103

 9.1 减少代码重复 103

 9.2 简化客户代码 106

 9.3 柯里化(currying) 107

 9.4 编写新的控制结构 108

 9.5 传名参数(by-name parameter) 110

 9.6 小结 112

第10章 组合与继承 113

 10.1 二维布局库 113

 10.2 抽象类 114

 10.3 定义无参数方法 114

 10.4 扩展类 116

 10.5 重写方法和字段 117

 10.6 定义参数化字段 118

 10.7 调用超类构造器 119

 10.8 使用override修饰符 120

 10.9 多态和动态绑定 121

 10.10 定义final成员 123

 10.11 使用组合与继承 124

 10.12 实现above、beside和toString 124

 10.13 定义工厂对象 126

 10.14 变高变宽 128

 10.15 把代码都放在一起 129

 10.16 小结 130

第11章 Scala的层级 131

 11.1 Scala的类层级 131

 11.2 原始类型是如何实现的 134

 11.3 底层类型 135

 11.4 小结 136

第12章 特质 137

 12.1 特质是如何工作的 137

 12.2 瘦接口对阵胖接口 139

 12.3 样例:长方形对象 140

 12.4 Ordered特质 141

 12.5 特质用来做可堆叠的改变 143

 12.6 为什么不是多重继承? 146

 12.7 特质,用还是不用? 148

 12.8 小结 149

第13章 包和引用 151

 13.1 包 151

 13.2 引用 153

 13.3 隐式引用 156

 13.4 访问修饰符 156

 13.5 小结 160

第14章 断言和单元测试 161

 14.1 断言 161

 14.2 Scala里的单元测试 162

 14.3 翔实的失败报告 163

 14.4 使用JUnit和TestNG 164

 14.5 规格测试 166

 14.6 基于属性的测试 167

 14.7 组织和运行测试 168

 14.8 小结 170

第15章 样本类和模式匹配 171

 15.1 简单例子 171

 15.2 模式的种类 174

 15.3 模式守卫 181

 15.4 模式重叠 181

 15.5 封闭类 182

 15.6 Option类型 184

 15.7 模式无处不在 185

 一个更大的例子 188

 15.9 小结 193

第16章 使用列表 195

 16.1 列表字面量 195

 16.2 List类型 195

 16.3 构造列表 196

 16.4 列表的基本操作 196

 16.5 列表模式 197

 16.6 List类的一阶方法 198

 16.7 List类的高阶方法 206

 16.8 List对象的方法 212

 16.9 了解Scala的类型推断算法 214

 16.10 小结 216

第17章 集合类型 217

 17.1 集合库概览 217

 17.2 序列(Sequence) 218

 17.3 集(Set)和映射(Map) 223

 17.4 可变(mutable)集合vs.不可变(immutable)集合 230

 17.5 初始化集合 231

 17.6 元组(Tuple) 234

 17.7 小结 235

第18章 有状态的对象 237

 什么让对象具有状态? 237

 18.2 可重新赋值的变量和属性 238

 18.3 案例研究:离散事件模拟 241

 为数字电路定制的语言 241

 18.5 Simulation API 243

 18.6 电路模拟 246

 18.7 小结 251

第19章 类型参数化 253

 19.1 queues函数式队列 253

 19.2 信息隐藏 255

 19.3 变化型注解 258

 19.4 检查变化型注解 261

 19.5 下界 263

 19.6 逆变 264

 19.7 对象私有数据 266

 19.8 上界 267

 19.9 小结 269

第20章 Abstract Members抽象成员 271

 20.1 抽象成员的快速浏览 271

 20.2 类型成员 272

 20.3 抽象val 272

 20.4 抽象var 273

 20.5 初始化抽象val 273

 20.6 抽象类型 279

 20.7 路径依赖类型 280

 20.8 Enumerations枚举 282

 20.9 案例研究:货币 283

 20.10 小结 290

第21章 隐式转换和参数 291

 21.1 隐式转换 291

 21.2 隐式操作规则 293

 21.3 隐式转换为期望类型 295

 21.4 转换(方法调用的)接收者 296

 21.5 隐式参数 298

 21.6 视界 302

 21.7 隐式操作调试 304

 21.8 小结 305

第22章 实现列表 307

 22.1 List类原理 307

 22.2 ListBuffer类 311

 22.3 实际的List类 312

 22.4 外在的函数式(风格) 314

 22.5 小结 314

第23章 重访for表达式 315

 23.1 For表达式 316

 23.2 皇后问题 317

 23.3 使用for表达式做查询 319

 23.4 for表达式的转译 320

 23.5 反其道而行之 323

 23.6 泛化的for 324

 23.7 小结 325

第24章 Extractors抽取器 327

 24.1 例子:抽取email地址 327

 24.2 抽取器 328

 24.3 0或1个变量的模式 330

 24.4 变参抽取器 331

 24.5 抽取器和序列模式 333

 24.6 抽取器vs.样本类 333

 24.7 正则表达式 334

 24.8 小结 336

第25章 注解 337

 25.1 为什么要有注解? 337

 25.2 注解语法 338

 25.3 标准注解 339

 25.4 小结 340

第26章 使用XML 341

 26.1 半结构化数据 341

 26.2 XML概览 341

 26.3 XML字面量 342

 26.4 序列化 344

 26.5 拆解XML 345

 26.6 反序列化 346

 26.7 加载和保存 347

 26.8 XML的模式匹配 348

 26.9 小结 350

第27章 使用对象的模块化编程 351

 27.1 问题 351

 27.2 食谱应用 352

 27.3 抽象概念 354

 27.4 把模块拆分为特质 356

 27.5 运行期链接 358

 27.6 跟踪模块实例 359

 27.7 小结 360

第28章 对象相等性 361

 28.1 Scala中的相等性 361

 28.2 编写相等性方法 361

 28.3 定义带参数类型的相等性 371

 28.4 equals和hashCode的制作方法 374

 28.5 小结 377

第29章 结合Scala和Java 379

 29.1 在Java中使用Scala 379

 29.2 注解 381

 29.3 存在类型 385

 29.4 小结 387

第3章 Actor和并发 389

 30.1 天堂中的烦恼 389

 30.2 Actor和消息传递 390

 30.3 将原生线程当作actor 393

 30.4 通过重用线程获得更好的性能 393

 30.5 良好的actor风格 395

 30.6 更长一些的示例:并行离散事件模拟 400

 30.7 小结 412

第31章 连结符解析 413

 31.1 示例:算术表达式 414

 31.2 运行你的解析器 415

 31.3 基本的正则表达式解析器 416

 31.4 另一个示例:JSON 416

 31.5 解析器输出 418

 31.6 实现连结符解析器 422

 31.7 字符串字面量和正则表达式 427

 31.8 词法分析和解析 428

 31.9 错误报告 429

 31.10 回溯vs. LL(1) 430

 31.11 小结 431

第32章 GUI编程 433

 32.1第一个Swing应用 433

 32.2 面板和布局 435

 32.3 处理事件 436

 32.4 示例:摄氏/华氏转换器 438

 32.5 小结 440

第33章 试算表 441

 33.1 可视化框架 441

 33.2 将数据录入和显示分开 443

 33.3 公式 445

 33.4 解析公式 446

 33.5 求值 450

 33.6 操作库 452

 33.7 修改传达 454

 33.8 小结 456

附录A Unix和Windows的Scala脚本 459

术语表 461

参考文献 471

关于作者 473

索引 475

随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/4/7 14:33:01