Scala编程9787121428326
正版图书,可开发票,请放心购买。
¥
141
7.5折
¥
188
全新
库存14件
作者[德]Martin Odersky
出版社电子工业出版社
ISBN9787121428326
出版时间2021-10
装帧平装
开本16开
定价188元
货号11435532
上书时间2024-12-17
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
[德]马丁·奥德斯基(Martin Odersky),是Scala语言的缔造者。他是瑞士洛桑理工学院(EPFL)的教授,自2001年起,由他带领的团队开发了Scala语言、类库和编译器。他同时是Lightbend公司的创始人,参与设计了Java泛型,还是当前javac编译器参考实现的原作者。
Lex Spoon,在EPFL开展了为期两年的Scala工作,目前是Square公司的软件工程师。
Bill Venners,是Artima公司总裁,是Scala Center咨询委员会的社区代表,还是测试框架ScalaTest的设计者。
Frank Sommers,是Autospaces公司的总裁。
高宇翔,资深软件开发工程师和系统架构师,同时也是Scala在国内的早期布道者和实践者,曾译有《Scala编程》(第1版)、《Scala编程》(第3版)、《Scala编程》(第4版),以及《快学Scala》(第1版)、《快学Scala》(第2版)等广为人知的Scala语言技术名著。
钟伦甫,Scala爱好者和早期布道者。2012年在淘宝中间件团队任职技术专家期间,用Scala编写过一款名为HouseMD 的JVM诊断工具并开源。后又作为联合译者,参与了《Scala函数式编程》一书的翻译;黄胜涛,有10年以上系统运维和8年以上软件开发经验,曾就职于携程旅行网、LOTTE,目前在上海昱极科技有限公司从事DevOps方面工作。
目录
序 XIX
引言 XXIII
第1章 一门可伸缩的语言 1
1.1 一门按需伸缩的语言 2
1.2 是什么让Scala能屈能伸 6
1.3 为什么要用Scala 9
1.4 Scala寻根 17
1.5 结语 19
第2章 Scala入门 20
第1步 使用Scala解释器 21
第2步 定义变量 22
第3步 定义函数 25
第4步 编写Scala脚本 27
第5步 用while做循环;用if做判断 29
第6步 用foreach方法和for-do遍历 31
结语 34
第3章 Scala入门(续) 35
第7步 用类型参数化数组 35
第8步 使用列表 40
第9步 使用元组 44
第10步 使用集和映射 45
第11步 识别函数式编程风格 50
第12步 用map方法和for-yield变换 53
结语 57
第4章 类和对象 58
4.1 类、字段和方法 58
4.2 分号推断 63
4.3 单例对象 64
4.4 样例类 67
4.5 Scala应用程序 69
4.6 结语 71
第5章 基础类型和操作 72
5.1 一些基础类型 72
5.2 字面量 73
5.3 字符串插值 79
5.4 操作符即方法 81
5.5 算术操作 84
5.6 关系和逻辑操作 85
5.7 位运算操作 87
5.8 对象相等性 88
5.9 操作符优先级和结合律 90
5.10 富包装类 93
5.11 结语 94
第6章 函数式对象 95
6.1 Rational类的规格定义 95
6.2 构建Rational实例 96
6.3 重新实现toString方法 98
6.4 检查前提条件 99
6.5 添加字段 100
6.6 自引用 102
6.7 辅助构造方法 103
6.8 私有字段和方法 105
6.9 定义操作符 106
6.10 Scala中的标识符 108
6.11 方法重载 111
6.12 扩展方法 113
6.13 注意事项 114
6.14 结语 115
第7章 内建的控制结构 116
7.1 if表达式 117
7.2 while循环 118
7.3 for表达式 121
7.4 用try表达式实现异常处理 127
7.5 match表达式 131
7.6 没有break和continue的日子 133
7.7 变量作用域 135
7.8 对指令式代码进行重构 139
7.9 结语 141
第8章 函数和闭包 142
8.1 方法 142
8.2 局部函数 143
8.3 一等函数 145
8.4 函数字面量的简写形式 147
8.5 占位符语法 148
8.6 部分应用的函数 149
8.7 闭包 152
8.8 特殊的函数调用形式 154
8.9 SAM类型 158
8.10 尾递归 159
8.11 结语 163
第9章 控制抽象 164
9.1 减少代码重复 164
9.2 简化调用方代码 168
9.3 柯里化 170
9.4 编写新的控制结构 172
9.5 传名参数 175
9.6 结语 178
第10章 组合和继承 179
10.1 一个二维的布局类库 179
10.2 抽象类 180
10.3 定义无参方法 182
10.4 扩展类 184
10.5 重写方法和字段 187
10.6 定义参数化字段 188
10.7 调用超类构造方法 189
10.8 使用override修饰符 191
10.9 多态和动态绑定 192
10.10 声明final成员 195
10.11 使用组合和继承 196
10.12 实现above、beside和toString方法 198
10.13 定义工厂对象 201
10.14 增高和增宽 204
10.15 放在一起 205
10.16 结语 207
第11章 特质 208
11.1 特质如何工作 208
11.2 瘦接口和富接口 211
11.3 作为可叠加修改的特质 214
11.4 为什么不用多重继承 218
11.5 特质参数 223
11.6 结语 225
第12章 包、引入和导出 227
12.1 将代码放进包里 227
12.2 对相关代码的精简访问 229
12.3 引入 232
12.4 隐式引入 236
12.5 访问修饰符 237
12.6 顶层定义 242
12.7 导出 243
12.8 结语 247
第13章 样例类和模式匹配 248
13.1 一个简单的例子 248
13.2 模式的种类 253
13.3 模式守卫 264
13.4 模式重叠 265
13.5 密封类 267
13.6 对Option进行模式匹配 269
13.7 到处都是模式 271
13.8 一个复杂的例子 276
13.9 结语 284
第14章 使用列表 285
14.1 List字面量 285
14.2 List类型 286
14.3 构建列表 287
14.4 列表的基本操作 287
14.5 列表模式 289
14.6 List类的初阶方法 291
14.7 List类的高阶方法 303
14.8 List对象的方法 311
14.9 同时处理多个列表 313
14.10 理解Scala的类型推断算法 315
14.11 结语 319
第15章 使用其他集合类 320
15.1 序列 320
15.2 集和映射 324
15.3 在可变和不可变集合之间选择 331
15.4 初始化集合 334
15.5 元组 337
15.6 结语 340
第16章 可变对象 341
16.1 什么样的对象是可变的 341
16.2 可被重新赋值的变量和属性 344
16.3 案例分析:离散事件模拟 347
16.4 用于描述数字电路的语言 348
16.5 模拟API 351
16.6 电路模拟 356
16.7 结语 363
第17章 Scala的继承关系 365
17.1 Scala的类继承关系 365
17.2 基本类型的实现机制 369
17.3 底类型 371
17.4 定义自己的值类型 372
17.5 交集类型 376
17.6 并集类型 377
17.7 透明特质 380
17.8 结语 382
第18章 类型参数化 383
18.1 函数式队列 383
18.2 信息隐藏 387
18.3 型变注解 390
18.4 检查型变注解 396
18.5 下界 399
18.6 逆变 401
18.7 上界 404
18.8 结语 407
第19章 枚举 408
19.1 枚举数据类型 408
19.2 代数数据类型 413
19.3 泛化代数数据类型 415
19.4 为什么说ADT是代数数据类型 416
19.5 结语 420
第20章 抽象成员 421
20.1 抽象成员概览 421
20.2 类型成员 422
20.3 抽象的val 423
20.4 抽象的var 424
20.5 初始化抽象的val 425
20.6 抽象类型 433
20.7 路径依赖类型 436
20.8 改良类型 438
20.9 案例分析:货币 439
20.10 结语 450
第21章 上下文参数 451
21.1 上下文参数的工作原理 452
21.2 参数化的上下文参数类型 456
21.3 匿名上下文参数 461
21.4 作为类型族的参数化上下文参数 463
21.5 上下文参数的引入 466
21.6 上下文参数的规则 468
21.7 当有多个上下文参数可选时 471
21.8 调试上下文参数 473
21.9 结语 475
第22章 扩展方法 476
22.1 扩展方法的基础 476
22.2 泛化的扩展方法 479
22.3 成组的扩展方法 481
22.4 使用类型族 484
22.5 针对上下文参数的扩展方法 486
22.6 Scala如何查找扩展方法 491
22.7 结语 492
第23章 类型族 493
23.1 为什么要用类型族 493
23.2 上下文界定 499
23.3 主方法 502
23.4 跨界相等性 506
23.5 隐式转换 512
23.6 类型族案例分析:JSON序列化 515
23.7 结语 526
第24章 深入集合类 527
24.1 可变和不可变集合 528
24.2 集合的一致性 530
24.3 Iterable特质 532
24.4 序列型特质Seq、IndexedSeq和LinearSeq 539
24.5 集 544
24.6 映射 548
24.7 具体的不可变集合类 553
24.8 具体的可变集合类 560
24.9 数组 565
24.10 字符串 570
24.11 性能特征 571
24.12 相等性 573
24.13 视图 574
24.14 迭代器 579
24.15 从头创建集合 585
24.16 Java和Scala集合互转 587
24.17 结语 589
第25章 断言和测试 590
25.1 断言 590
25.2 用Scala写测试 592
25.3 翔实的失败报告 594
25.4 作为规格说明的测试 596
25.5 基于属性的测试 599
25.6 组织和运行测试 601
25.7 结语 603
术语表 604
关于作者 627
内容摘要
本书由直接参与Scala开发的一线人员编写,深入介绍了Scala这门结合面向对象和函数式的编程语言的核心特性和设计取舍。继第4版后,时隔一年,本书迎来重大更新,内容覆盖Scala3.0,对新的缩进语法、并集类型、交集类型、枚举、代数数据类型、上下文参数、特质参数、扩展方法、类型族等都有详细介绍。本书适合有一定编程经验的开发者阅读,尤其是对Scala3.0新特性感兴趣的开发者朋友。即便是不直接使用Scala的读者,也能从本书中学到大量关于函数式和面向对象的编程概念和技巧。
主编推荐
"《Scala编程(第5版)》是Scala的非常不错图书。Scala是Java平台上的一门功能强大的主流语言,它以独到的方式将面向对象和函数式编程的概念有机地结合在一起,供开发者使用。 这本Scala的非常不错图书由Scala语言的设计者共同编写,将循序渐进地向你介绍Scala编程语言和它背后的设计理念。 为了帮助你更好地学习,本书做了很多仔细的编排和组织。最开始的几章将教给你足够多的基础知识,让你可以直接上手用Scala处理简单任务。本书严格遵循这样的原则:每个新的概念都基于之前已经出现过的概念,通过阶梯式的教学,让你逐步掌握Scala编程语言和它背后的重要设计理念。 这是一本全面介绍Scala的教科书,涵盖了语言基础和重要类库,可被当作Scala的参考书。 如果你读过本书之前的版本,则会发现这本第5版有重大更新,覆盖了Scala 3.0。它增加了新的章节,也删减了部分旧的章节。本书第5版对Scala 3.0的以下特性进行了详细的介绍:√枚举和代数数据类型√上下文参数√扩展方法√安静语法和可选花括号√特质参数√并集类型和交集类型√导出子句√顶层定义"
精彩内容
本书由直接参与 Scala 开发的一线人员编写,深入介绍了 Scala 这门结合面向对象和函数式的编程语言的核心特性和设计取舍。继第 4 版后,时隔一年,本书迎来重大更新,内容覆盖 Scala 3.0,对新的缩进语法、并集类型、交集类型、枚举、代数数据类型、上下文参数、特质参数、扩展方法、类型族等都有详细介绍。本书适合有一定编程经验的开发者阅读,尤其是对 Scala 3.0 新特性感兴趣的开发者朋友。即便是不直接使用 Scala 的读者,也能从本书中学到大量关于函数式和面向对象的编程概念和技巧。
媒体评论
Scala缔造者亲自撰写的不二权威||全面覆盖3.0新版只此一本||Java之父领衔首推||国内社区领袖翻译《Scala编程(第5版)》是Scala的权威图书。Scala是Java平台上的一门功能强大的主流语言,它以独到的方式将面向对象和函数式编程的概念有机地结合在一起,供开发者使用。
这本Scala的权威图书由Scala语言的设计者共同编写,将循序渐进地向你介绍Scala编程语言和它背后的设计理念。
为了帮助你更好地学习,本书做了很多仔细的编排和组织。最开始的几章将教给你足够多的基础知识,让你可以直接上手用Scala处理简单任务。本书严格遵循这样的原则:每个新的概念都基于之前已经出现过的概念,通过阶梯式的教学,让你逐步掌握Scala编程语言和它背后的重要设计理念。
这是一本全面介绍Scala的教科书,涵盖了语言基础和重要类库,可被当作Scala的参考书。
如果你读过本书之前的版本,则会发现这本第5版有重大更新,覆盖了Scala 3.0。它增加了新的章节,也删减了部分旧的章节。本书第5版对Scala 3.0的以下特性进行了详细的介绍:√枚举和代数数据类型√上下文参数√扩展方法√安静语法和可选花括号√特质参数√并集类型和交集类型√导出子句√顶层定义“如果今天让我在Java之外选一门语言,我会选Scala。”——James Gosling,Java之父
《Scala编程》可能是我读过最好的编程书之一。我喜欢它的写作风格、简明扼要的描述,以及细致入微的讲解。本书总能在我想到某个问题时,适时地给出答案,可以说它总是先我一步。作者们并不只是简单地秀代码,想当然地认为你会理解,他们会让你真正明白代码背后的东西。我非常欣赏这一点。
——Ken Egervari,首席软件架构师《Scala编程》行文清晰、深入细致、易于理解,示例、提示和建议贯穿全书。本书可以让我们快速、高效地掌握Scala这门编程语言。对于想要理解Scala的灵活性和优雅性的程序员来说,这本书非常棒。
——Larry Morroni,公司老板,Morroni Technologies, Inc.
《Scala编程》是一本非常好的Scala入门教材。本书每一章都构建在之前章节的概念和示例之上,内容循序渐进,很容易上手。同时,本书对Scala的语法结构的解释很深入,经常会给出示例来解释Scala与Java的不同。除了介绍语言本身,还介绍了类库,如容器类和actor等。
我认为本书非常易读,属于我最近读过的比较好的技术书。真心推荐给所有想要进一步了解Scala编程的程序员们。
——Matthew Todd我对《Scala编程》的作者们付出的努力表示惊叹。本书对于Scala平台(我喜欢这样来称呼)来说是一个非常有价值的指南:如何写出更好的代码,如何设计和实现可伸缩的软件架构。如果在我 2003 年参与设计和实现 2004年雅典奥运会门户网站架构时,Scala像今天这样成熟,书桌上有这样一本参考书,该多好!
我想对所有的读者说:不论你有怎样的编程背景,我认为你都会发现Scala编程是非常舒心、可释放用户潜能的,这本书也会成为你探索Scale编程的良伴。
——Christos KK Loverdos,软件咨询师,研究员
《Scala编程》非常棒,对Scala进行了深入的讲解,同时是很好的参考书。它会在我的书架占据显著位置(最近不管去哪儿我都会带上它)。
——Brian Clapper,主席,ArdenTex Inc.
很棒的书,代码示例和讲解都非常到位。不论编程老手和新手,我都会将本书推荐给他们。
——Howard Lovatt
《Scala 编程》不仅告诉你如何使用这门新的编程语言做开发,更重要的是,它还告诉你这样做的原因。本书从很务实的角度入手,向我们介绍将面向对象和函数式编程结合在一起所带来的强大功能,让读者彻底明白Scala的真谛。
——Dr. Ervin Varga,CEO/创始人,EXPRO I.T. Consulting
对面向对象(OO)程序员而言,本书很好地介绍了函数式编程。我的首要目标是学习函数式编程(FP),不过在学习过程中我也发现了一些惊喜,如样例类(case class)和模式匹配(pattern matching)。Scala是一门有趣的编程语言,而本书是关于Scala编程的很好的教程。
一本介绍编程语言的书,对于各种细节和背景,讲多讲少,这个度很难拿捏得准。我认为《Scala编程》在这方面做得非常好。
——Jeff Heon,程序分析师我预购了这本由Martin Odersky、Lex Spoon和Bill Venners等编写的《Scala编程》电子版,当我收到预先发行版本的时候,立马就成了其粉丝。因为它不仅包含了关于这门语言最全面的介绍,还介绍了几项核心功能,让我印象深刻:我从未见过哪一本电子书对于超链接的应用如此到位,不仅有书签,还可以从目录和索引直接跳转到对应章节。这些功能对读者来说非常有用,但是我不清楚为什么没有更多的作者这样做。另一组很赞的功能:外链到论坛(Discuss)及向作者发送电子邮件(Suggest);提出意见和建议,这个功能本身并没有什么了不起,但是《Scala编程》电子版能够在读者提交建议时自动带上页码,这给作者和读者都提供了便利。正因如此,我贡献了比以往更多的意见和建议。
无论如何,《Scala编程》的内容都值得一读,如果你读的是电子版,可别浪费了作者们费心加入的这些功能哦!
——Dianne Marsh,创始人/软件咨询师,SRT Solutions清晰洞察和技术完整性是一本好书的标志性特征,我向本书的作者Martin Odersky、Lex Spoon和Bill Venners等表示祝贺!《Scala编程》从坚实的基础概念开始,将Scala用户从入门带到中级并继续向上攀升。对任何想要学习Scala编程的人而言,本书都不容错过。
——Jagan Nambi,企业架构师,GMAC Financial Services《Scala编程》的阅读体验非常好。对主题的讲解深入、细致、全面,行文精简、优雅。
本书的章节组织非常自然,符合逻辑。无论是对于那些对新鲜事物好奇的技术工作者,还是对于那些想要深入理解Scala核心功能点和设计内在动因的专业人士,都同样适用。对于对函数式编程感兴趣的朋友,我强烈推荐本书。而对于Scala开发者,本书是必读的。
——Igor Khlystov,软件架构师/主程,Greystone Inc.
《Scala编程》从头到尾都让人感受到作者在背后付出的巨大心血。在此之前,我从未读到过哪本教程类的书能够兼顾入门和进阶。大部分教程类的书,为了达到看上去易懂(同时不让读者“困惑”)的效果,悄悄地剔除了相关主题中的那些对当前讨论而言过于高级的知识点。这对于读者来说体验很糟糕,因为我们并不能确切地知道自己有没有完全理解,理解到什么程度。我们总会觉察到有些残余的、没有被充分解释的“魔法”,而这些是否属实,我们作为读者也无从评判。这本书不会使人产生这种感觉,它从不
— 没有更多了 —
以下为对购买帮助不大的评价