发表于2024-11-23
快学Scala pdf epub mobi txt 电子书 下载
O'Reilly系列畅销丛书!广大学者读完后爱不释手!
《快学Scala》试图打破教条,从以下三个方面实现突围:
1)不马上跳到函数式编程;
2)努力搭建适用于Java/C++程序员的共同基础;
3)在引入新的概念之前,优先让用户理解可做类比的知识。
本书适合有一定的Java编程经验、对Scala感兴趣,并希望尽快掌握Scala核心概念和用法的开发者阅读。
《快学Scala》是一门以Java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的特性结合在一起的编程语言。你可以使用Scala编写出更加精简的程序,同时充分利用并发的威力。由于Scala运行于JVM之上,因此它可以访问任何Java类库并且与Java框架进行互操作。《快学Scala》从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann以“博客文章大小”的篇幅介绍了Scala的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。
Cay S.Horstmann,是《Java核心技术》卷1和卷2第8版(Sun Microsystems出版社2008年出版)的主要作者,除此之外,他还著有其他十多本面向专业程序员和计算机科学专业学生的书籍。
译者序
序
前言
作者简介
第1章 基础A1
1.1 Scala解释器
1.2声明值和变量
1.3常用类型
1.4算术和操作符重载
1.5调用函数和方法
1.6 apply方法
1.7 Scaladoc
练习
第2章 控制结构和函数A1
2.1 条件表达式
2.2语句终止
2.3块表达式和赋值
2.4输入和输出
2.5循环
2.6高级for循环和for推导式
2.7函数
2.8默认参数和带名参数L1
2.9变长参数L1
2.10过程
2.11懒值L1
2.12异常
练习
第3章 数组相关操作A1
3.1定长数组
3.2变长数组:数组缓冲
33遍历数组和数组缓冲
3.4数组转换
3.5常用算法
3.6解读Scaladoc
3.7多维数组
3.8与Java的互操作
练习
第4章 映射和元组A1
4.1构造映射
4.2获取映射中的值
4.3更新映射中的值
4.4迭代映射
4.5 已排序映射
4.6与Java的互操作
4.7元组
4.8拉链操作
练习
第5章 类A1
5.1简单类和无参方法
52带getter和setter的属性
5.3 只带getter的属性
5.4对象私有字段
5.5 Bean属性L1
5.6辅助构造器
5.7主构造器
5.8嵌套类L1
练习
第6章 对象A1
6.1单例对象
6.2伴生对象
6.3扩展类或特质的对象
6.4 apply方法
6.5应用程序对象
6.6枚举
练习
第7章 包和引入A1
7.1包
7.2作用域规则
7.3串联式包语句
7.4文件顶部标记法
7.5包对象
7.6包可见性
7.7引入
7.8 任何地方都可以声明引入
7.9重命名和隐藏方法
7.10隐式引入
练习
第8章 继承A1
8.1扩展类
8.2重写方法
8.3类型检查和转换
84受保护字段和方法
8.5超类的构造
8.6重写字段
8.7匿名子类
8.8抽象类
8.9抽象字段
8.10构造顺序和提前定义L3
8.11 Scala继承层级
8.12对象相等性L1
练习
第9章 文件和正则表达式A1
9.1读取行
9.2读取字符
9.3读取词法单元和数字
9.4从URL或其他源读取
9.5读取二进制文件
9.6写入文本文件
9.7访问目录
9.8序列化
9.9进程控制A2
9.10正则表达式
9.11正则表达式组
练习
第10章 特质L1
10.1为什么没有多重继承
10.2当做接口使用的特质
10.3带有具体实现的特质
10.4带有特质的对象
10.5叠加在一起的特质
10.6在特质中重写抽象方法
10.7当做富接口使用的特质
10.8特质中的具体字段
10.9特质中的抽象字段
10.10特质构造顺序
10.11初始化特质中的字段
10.12扩展类的特质
10.13自身类型L2
10.14背后发生了什么
练习
……
第11章 操作符L1
第12章 高阶函数L1
第13章 集合A2
第14章 模式匹配和样例类A2
第15章 注解A2
第16章 XML处理A2
第17章 类型参数L2
第18章 高级类型L2
第19章 解析A3
第20章 ActorA3
第21章 隐式转换和隐式参数L3
第22章 定界延续L3
词汇表
索引
你也可以在命令行中使用这些名称:
scalac —Xelide—below INFO myprog.scala
如果不指定—Xelide—below标志,那些被注解的值低于1000的方法会被省略,剩下SEVERE的方法和断言,但会去掉所有警告。
说明:ALL和OFF级别可能会让人感到困惑。注解@elide(ALL)表示方法总是被省略,而@elide(OFF)表示方法永不被省略。但—Xelide—below OFF的意思是要省略
所有方法,而—Xelide—below ALL的意思是什么都不要省略。这就是后来又增加了MAXIMUM和MINIMUM的原因。
Predef模块块定义了一个可被忽略的assert方法。例如,我们可以写:
def makeMap (keys: Seq(String), values: Seq(String)) ={assert (keys.length==values.length, """"lengths don't match”)}
如果我们用不匹配的两个参数来调用该方法,则assert方法将抛出AssertionError,报错消息为“assertion failed: lengths don't match”。
如果要禁用断言,可以用—Xelide—below 2001或—Xelide—below MAXIMUM。注意在缺省情况下断言不会被禁用。相比Java断言,这是个受欢迎的改进。
注意:对被省略的方法调用,编译器会帮我们替换成Unit对象。如果你用到了 被省略方法的返回值,则一个ClassCastException会被抛出。最好只对那些没有返回值的方法使用@elidable注解。
……
Java和C++的进化速度已经大不如前,那些乐于使用更现代的语言特性的程序员们正在将眼光移向他处。Scala是个很有吸引力的选择;事实上,在我看来,对于想要突破和超越Java或C++的程序员而言,Scala是最具吸引力的一个。Scala的语法十分简洁,相比Java的样板代码,Scala让人耳目一新。Scala运行于Java虚拟机之上,让我们可以使用现成的海量类库和工具。它在拥抱函数式编程的同时,并没有废弃面向对象,使你得以逐步了解和学习一种全新的编程范式。Scala解释器可让你快速运行实验代码,这使得学习Scala的过程颇为轻松惬意。最后,同时也是很重要的一点是,Scala是静态类型的,编译器能够帮我们找出大部分错误,这样一来,这些错误就不至于要等到程序运行起来以后才被发现(或未被发现),造成时间上的浪费。
本书是写给那些对于立即开始Scala编程有急切渴望的读者的。我假定你懂Java、C#或C++,并且我也不会去解释变量、循环或类这些基本概念。我不去穷举Scala的所有特性,不会宣传某一种范式比另一种更优越,也不会用冗长的、过于机巧的示例来折磨你。与此相反,你将会以紧凑的篇幅得到你想要的信息,可以根据需要选择阅读和复习。
Scala是一门内容很丰富的语言,不过你并不需要知道它的所有细节,就已经可以有效地使用了。Scala的创始人MartinOdersky对应用程序开发工程师和类库设计人员所需的专业知识技能的层级进行了定义。
我希望你通过本书享受到学习Scala的乐趣。如果你发现了错误或者有任何改进建议。在那里,你也能找到指向包含本书全部代码示例的打包文件的链接。
在此特别感谢Dmitry Kirsanov和AlinaKirsanova将我的手稿从XHTML转换成如此漂亮的排版形式,让我可以将注意力集中在内容而不是在格式调整上。每个作者都应享受这种待遇!
参与本书审稿的人员有:Adrian Cumiskey、Mike Davis、Rob Dickens、Daniel
Sobral、Craig Tataryn、David Walend、WilliamWheeler。非常感谢你们的评价和建议!
最后,一如既往,感谢我的编辑Greg Doench,感谢他对我撰写本书的鼓励和贯穿于整个过程当中的洞察力。
买来用来学习的,希望能提高自己的水平!加油!
评分可以,和同事各买了一本,不错,学习了
评分挺厚的一本书,内容很丰富,缺点就是目录排版比较丑,里面的内容有点各处摘抄的感觉
评分不错不错不错不错( ?∀ ?)不错不错不错不错( ?∀ ?)
评分[cp]“我没有害怕,”楚慈认真的解释,“我就是有点遗憾。”
评分Java多线程编程实战指南(核心篇),值得反复阅读
评分讲解scala语言的书很具体,文字印刷很好。
评分Spark推荐语言
评分质量杠杠的,内容讲的也挺不错,纸质好,618买的,送货也快,相信品牌的力量,值得拥有!
快学Scala pdf epub mobi txt 电子书 下载