• Scala编程 第4版
  • Scala编程 第4版
  • Scala编程 第4版
21年品牌 40万+商家 超1.5亿件商品

Scala编程 第4版

正版保障 假一赔十 可开发票

116.01 5.6折 209 全新

库存6件

广东广州
认证卖家担保交易快速发货售后保障

作者(德)Martin Odersky( 马丁·奥德斯基), Lex Spoon(莱斯·彭), Bill Venners (比尔·文纳斯)

出版社电子工业出版社

ISBN9787121402722

出版时间2020-12

装帧平装

开本16开

定价209元

货号29179439

上书时间2024-11-01

兴文书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

译者序
三年过去了。Scala 变了吗?在我看来,Scala 还是那个让人着迷,同时又超级务实的小众语言。但这并不重要,重要的是你找到了它,而它也找到了你。如果你刚接触 Scala,请允许我投来羡慕的眼光,因为从来没有像今天这样,
有这么多优质的学习资源可供选择,而 Scala 也一直在稳定地向业界输出成熟的解决方案和人才。
我还清晰地记得十年前刚上手 Scala,以及三年前引进《Scala 编程》第3版时的内心活动。我的职业生涯,从我接触 Scala 那一天起,就已注定不同。不怕各位看官笑话,Scala 是我现在公司入职的敲门砖,让我从企业开发顺利
过渡到互联网行业。Scala 也伴随我和团队的成长,贡献了大量经住了互联网级别压力考验的代码,其中一些从 6 年前上线到现在,几乎没有做过重大修改,还是初的设计和实现,跑赢了很多昙花一现的技术栈。
说回《Scala 编程》,跟第 3 版相比,第 4 版增补了 Scala 2.13 的内容,Scala 2.13 中主要的改动,是为了给 Scala 3 打基础而几乎重写的集合框架。这本书的分量,除 Martin Odersky 的亲自背书和显而易见的篇幅之外,我
认为值得一提的,是它不仅全面覆盖了 Scala 几乎所有的语言特性,还从语言开发者的视角,向我们介绍了这些语言特性和设计取舍背后的原因,以及要解决的问题。这是《Scala 编程》跟其他林林总总的 Scala 图书的区别。从工具和工具书的角度来看,你也许会觉得 :编程语言就是拿来干活儿的,一本编程语言的入门书,当然就是要把怎么用讲明白,让我高效地完成手中的工作,其他都是次要的。这里,我想给读者朋友们分享一个我自己的心得 :语言除了表达(让计算机和其他人类明白),更是思维的载体。学习一门编程语言,局部功利的因素当然有,但更多的,是通过这门语言,拓宽你的知识边界。语言是手段,不是目的。所以,不论你是否从事 Scala 编程工作,希望这本书,都能够带给你不一样的世界和认知。
感谢 Martin Odersky 和他的团队,为我们带来这样一门独特而优美的编程语言 ;感谢电子工业出版社、张春雨编辑,在第 1 版和第 3 版之后,继续引进本书的第 4 版 ;感谢编辑团队和其他幕后工作者的辛勤付出 ;感谢家人无条件的支持和鼓励,我爱你们,你们是我心中的灯塔。
在本书的翻译过程中,译者虽已尽力忠实呈现原著的本意,但毕竟能力有限,问题和疏漏恐难以避免,恳请各位读者批评指正,联系地址 : gaoyuxiang.scala@gmail.com 。
——高宇翔 2020 年于上海


那是 2004 年的一天,我才刚开始编程的职业生涯没多久,当我坐下来,选中了这门在当时还没多少人知道的语言时,我根本无从想象,是怎样的探索和发现的旅程在等待着我。
初,使用 Scala 编程给我的感受跟使用其他语言并没有特别的不同:试错、实验然后发现,误解然后受教。那时,我能获取的学习资料十分有限:没有教程,没有博客,没有能教我的熟手,当然,更没有像《Scala 编程》这样的书可以参考。我有的仅仅是一门语言,各种神奇的新特性,但没有人能完全肯定怎样用是合适的。赋能的同时,也让人无所适从!
我的 Java 程序员背景让我对 Scala 有所准备,但在日常开发中使用 Scala还是很不一样。我记得早期的一次印象深刻的 Scala 编程经历,当时我跟另一个伙伴一起用 Scala 做一个中等规模的项目。项目过程中我决定执行一次重构
操作——我总是能不断发现新的特性和模式,这已经成了常态——然后就是好几轮的编译。每一次编译器都会向我报告错误清单和每个错误的行号,而我每次都会找到对应的代码行,看看是哪里不对,更新代码修复问题(问题通常都
不会消失,而是换个地方出现)。不过每一步,编译器都能直接把我引到问题发生的地方。有时候,我会重复上述的步骤,好几天都没有一次成功的编译。不过当编译错误从 100 条逐步减少到 10 条,然后 1 条,然后 0 条——成功编译——这时我终于能够跑一跑这个经过大力重构的系统。然而,出人意料的是,它竟然能正常工作。作为一个之前只用过 Java、Perl、BASIC、PHP 和 JavaScript 的年轻程序员,我简直无法相信这是真的。
时间来到 2015 年,在我组织的首届 Scala World 大会上,Rúnar Bjarnason在开场主题演讲中提到“约束即解放,自由有束缚”。在这一点上,没有什么比 Scala 编译过程更有说服力 :当程序员知道 scalac 会执行一整套约束检查,
其目的是让我们免于经历运行时错误——糟糕的一种错误——的痛苦时,会获得解放。这会让程序员在哪怕没有完整的测试套件时,也能充满信心去实验和探索,开启大刀阔斧的改造。
在过去的这些年,我不断地学习 Scala,直到今天还能发现新的可能性、细微差异和不同特性之间有趣的交集。我不知道还有什么其他语言能像 Scala这样经过多年还持续让人陶醉其中。
Scala 即将迎来一次巨变。Scala 的下一个主要版本,Scala 3,其更新幅度将不亚于我 15 年前从 Java 升级到 Scala。日常的 Scala 编程体验大部分还会继续保留,但新的语言特性将交叉融合,并深远地影响 Scala 的方方面面。在本书付印之时,离 Scala 3 被大面积采纳还有几年的时间,Scala 2 在可预见的未来仍是 Scala 事实上的标准版本。
本书所涵盖的 Scala 2 版本,2.13,在标准库中引入了全新的集合类库,吸取了大量来自实战的经验教训,以简化为目标做了重新设计,而上一次这种规模的重构要追溯到 Scala 2.8。新的集合将支持交叉编译到 Scala 2 和 Scala 3,使用新集合类库的代码将无疑为下一个十年打好基础。当所有人对下一个版本的 Scala 都充满期待时,不失为入手《Scala 编程》开始学习的良好契机!
——Jon Pretty 2019 年 9 月 12 日 波兰 克拉科夫

引言
本书是 Scala 编程语言的教程,由直接参与 Scala 开发的人来编写。我们的目标是让读者通过本书,能够了解和掌握成为高产的 Scala 程序员需要知道的一切。书中的示例均通过 Scala 2.13.1 编译。
谁读本书
本书主要的目标读者是希望学习如何用 Scala 编程的人。如果你想在你的下一个项目中使用 Scala,那么本书就是为你准备的。除此之外,本书对于那些想要学习新知识从而扩展自己眼界的程序员也同样有益。比方说,如果你是
Java 程序员,阅读本书,你将接触到来自函数式编程领域和高阶面向对象领域的许多概念。我们相信,通过学习 Scala,以及 Scala 背后的观念,你将成为一名更好的程序员。
我们假定你拥有常规的编程知识。尽管 Scala 作为用于入门的编程语言并没有什么不妥,但是这本书并不适用于(从零开始)学习编程。另一方面,阅读本书并不要求某项具体的编程语言的知识。我们当中大部分人都是在 Java 平台上使用 Scala 的,但本书并不假定你了解 Java 本身。不过,我们预期大部分读者都熟悉 Java,因此我们有时会拿 Scala 跟 Java 做对比,帮助这些读者理解它们之间的区别。
如何使用本书
由于本书的主旨是教学,因此我们推荐的阅读顺序是从前到后,依次阅读各章。我们尽可能每次只引入一个主题,同时只用已经介绍过的主题来解释这个新的主题。因此,如果跳过前面的章节,你也许会遇到某些并不十分理解的
概念。只要按顺序阅读,你会发现掌握 Scala 是循序渐进、顺理成章的。如果你看到某个不明白的词汇,记着查看词汇表和索引。许多读者都喜欢快速浏览特定的章节,这没有问题,词汇表和索引能帮助你随时找回阅读的坐标和方位。
当你读完本书以后,还可以继续将其当作语言参考。Scala 编程语言有一份正式的语言规范,但语言规范强调的是精确,而不是可读性。虽然本书不会覆盖 Scala 的每一个细节,它也足够全面,应该能够在你逐渐成为 Scala 编程
能手的过程中,承担起语言参考书的职责。
如何学习Scala
通读本书,可以学到很多关于 Scala 的知识。不过,如果你做一些额外的尝试,则可以学得更快,更彻底。
首先,可以利用好包含在本书中的代码示例。手动将这些示例录入,有助于在脑海中逐行过一遍代码。尤其是录入过程中尝试一些变化,会非常有趣,这也能让你确信自己真的理解了它们背后的工作原理。
其次,时常访问在线论坛。这样,你和其他 Scala 爱好者可以互相促进。网上有大量的邮件列表、讨论组、聊天室、Wiki 和 Scala 特定主题的订阅。花些时间,找到满足你需求的内容,你会在小问题上花更少的时间,有更多的精力投入到更深入、更重要的问题中。
后,一旦你读得足够多,则可以自己启动一个编程项目。从头编写小程序,或者为某个更大的项目开发组件。仅仅阅读并不会让你走得更远。
内容概览
第 1 章, “一门可伸缩的语言”,主要介绍 Scala 的设计及背后的概念和历史。
第 2 章,“Scala 入门”,介绍了如何用 Scala 完成一些基础的编程任务,但并不深入讲解它们是如何工作的。本章的目的是让你可以开始键入 Scala 代码并执行。
第 3 章,“Scala 入门(续)”,展示了更多基本的编程任务,帮助你快速上手 Scala。学习完本章以后,你应该就能用 Scala 完成简单的脚本型任务了。
第 4 章,“类和对象”,开始深入介绍 Scala,描述其基本的面向对象的组成部分,并指导大家如何编译并运行 Scala 应用程序。
第 5 章,“基本类型和操作”,介绍了 Scala 基本类型、字面量和支持的操作,(操作符的)优先级和结合性,以及对应的富包装类。
第 6 章,“函数式



导语摘要

本书由直接参与 Scala 开发的一线人员编写,因而对原理的解读和对应用的把握更加值得信赖。本书面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握 Scala 编程语言的核心特性,并能够深入理解 Scala 这门语言在设计取舍背后的动因。即便是不直接使用Scala 的读者或非一线编程从业者,也能从本书中学到大量关于函数式和面向对象的编程概念和技巧。



作者简介

Martin Odersky是Scala语言的缔造者。他是瑞士洛桑理工学院(EPFL)的教授,自2001年起,由他带领的团队开发了Scala语言、类库和编译器。他同时是Lightbend公司的创始人,参与设计了Java泛型,还是当前javac编译器参考实现的原作者。Lex Spoon在EPFL开展了为期两年的Scala编程工作,目前是Square公司的软件工程师。Bill Venners是Artima公司总裁,是Scala Center咨询委员会的社区代表,还是测试框架ScalaTest和针对函数式、面向对象编程类库Scalactic的主要开发者和设计者。
高宇翔,资深软件开发工程师和系统架构师,同时也是Scala在国内的早期布道者和实践者,曾译有和《Scala编程》(第1版)、《Scala编程》(第3版)《快学Scala》(第1版)、《快学Scala》(第2版)等Scala语言的名著。



目录

序 .........................................................................................................XXII 
致谢 .....................................................................................................XXIV 
引言 ....................................................................................................XXVII 
第1章 一门可伸缩的语言 ..........................................................................1 
1.1 一门按需伸缩的语言 ..................................................................... 2 
1.2 是什么让Scala能屈能伸 ................................................................. 7 
1.3 为什么要用Scala ...........................................................................11 
1.4 Scala寻根 ..................................................................................... 17 
1.5 结语 ............................................................................................. 19 
第2章 Scala入门 ....................................................................................20 
第1步 使用Scala解释器 ..................................................................... 21 
第2步 定义变量 ................................................................................. 22 
第3步 定义函数 ................................................................................. 24 
第4步 编写Scala脚本 ......................................................................... 26 
第5步 用while做循环;用if做判断 .................................................... 27 
第6步 用foreach和for遍历 ................................................................. 30 
结语 ...................................................................................................... 32 
第3章 Scala入门(续) ..........................................................................33 
第7步 用类型参数化数组 .................................................................. 33 
第8步 使用列表 ................................................................................. 38 
第9步 使用元组 ................................................................................. 42 
第10步 使用集和映射 ........................................................................ 43 
第11步   识别函数式编程风格 ............................................................. 48 
第12步   从文件读取文本行 ................................................................. 51 
结语 ...................................................................................................... 55 
第4章 类和对象 ......................................................................................56 
4.1 类、字段和方法 ........................................................................... 56 
4.2 分号推断 ...................................................................................... 61 
4.3 单例对象 ...................................................................................... 62 
4.4 Scala应用程序 ............................................................................. 65 
4.5 App特质 ....................................................................................... 68 
4.6 结语 ............................................................................................. 68 
第5章 基础类型和操作 ............................................................................69 
5.1 一些基础类型 .............................................................................. 69 
5.2 字面量 .......................................................................................... 70 
5.3 字符串插值 .................................................................................. 77 
5.4 操作符即方法 .............................................................................. 78 
5.5 算术操作 ...................................................................................... 81 
5.6 关系和逻辑操作 ........................................................................... 83 
5.7 位运算操作 .................................................................................. 85 
5.8 对象相等性 .................................................................................. 86 
5.9 操作符优先级和结合性 ............................................................... 88 
5.10 富包装类 .................................................................................... 91 
5.11 结语............................................................................................ 91 
第6章 函数式对象 ...................................................................................93 
6.1 Rational类的规格定义 ................................................................. 93 
6.2 构建Rational ................................................................................ 94 
6.3 重新实现toString方法 .................................................................. 96 

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP