深入理解Scala
正版保障 假一赔十 可开发票
¥
37.07
6.3折
¥
59
全新
仅1件
作者[美]Joshua D.Suereth
出版社人民邮电出版社
ISBN9787115365545
出版时间2014-11
装帧平装
开本其他
定价59元
货号8385539
上书时间2024-12-17
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
Josh Suereth ,Typesafe公司的一名软件工程师,它是Scala的Committer之一,也是scala-tools.org的维护者。
目录
第1章 Scala——一种混合式编
程语言 1
1.1 Scala的设计哲学 1
1.2 当函数式编程遇见面向
对象 3
1.2.1 重新发现函数式概念 4
1.2.2 Google Collections中的
函数式概念 6
1.3 静态类型和表达力 8
1.3.1 换边 8
1.3.2 类型推断 9
1.3.3 抛开语法 10
1.3.4 隐式转换概念早已
有之 11
1.3.5 使用Scala的implicit
关键字 12
1.4 与JVM的无缝集成 13
1.4.1 Scala调用Java 13
1.4.2 Java调用Scala 14
1.4.3 JVM的优越性 15
1.5 总结 16
第2章 核心规则 17
2.1 学习使用Scala交互
模式(REPL) 17
2.1.1 实验驱动开发 19
2.1.2 绕过积极(eaglerly)
解析 20
2.1.3 无法表现的语言特性 21
2.2 优先采用面向表达式
编程 22
2.2.1 方法和模式匹配 23
2.2.2 可变性 24
2.3 优先选择不变性 26
2.3.1 判等 27
2.3.2 并发 31
2.4 用None不用 34
2.5 多态场景下的判等 38
2.5.1 例子:时间线库 38
2.5.2 多态判等实现 40
2.6 总结 43
第3章 来点样式—编码
规范 44
3.1 避免照搬其他语言的
编码规范 45
3.2 空悬的操作符和括号
表达式 48
3.3 使用有意义的命名 50
3.3.1 命名时避免$符号 51
3.3.2 使用命名和默认参数 53
3.4 总是标记覆盖(overriden)方法 56
3.5 对期望的优化进行
标注 61
3.6 总结 66
第4章 面向对象编程 68
4.1 限制在对象或特质的
body里初始化逻辑的
代码 68
4.1.1 延迟构造 69
4.12 多重继承又来了 70
4.2 为特质的抽象方法提供空实现 71
4.3 组合可以包含继承 76
4.3.1 通过继承组合成员 79
4.3.2 经典构造器with a twist 80
4.3.3 总结 82
4.4 提升抽象接口为独立
特质 82
4.4.1 和接口交互 84
4.4.2 从历史中吸取教训 85
4.4.3 结论 86
4.5 public接口应当提供
返回值 86
4.6 总结 88
第5章 利用隐式转换写更有表
达力 89
5.1 介绍隐式转换系统 90
5.1.1 题外话:标识符 91
5.1.2 作用域和绑定 93
5.1.3 隐式解析 97
5.1.4 通过类型参数获得隐式
作用域 99
5.1.5 通过嵌套获得隐式
作用域 100
5.2 隐式视图:强化已存在
的类 101
5.3 隐式参数结合默认
参数 106
5.4 限制隐式系统的
作用域 112
5.4.1 为导入创建隐式转换 112
5.4.2 没有导入税(import tax)的隐式转换 114
5.5 总结 118
第6章 类型系统 119
6.1 类型 120
6.1.1 类型和路径 121
6.1.2 type关键字 123
6.1.3 结构化类型 124
6.2 类型约束 130
6.3 类型参数和高阶类型
(Higher Kinded
Types) 133
6.3.1 类型参数约束 133
6.3.2 高阶类型 134
6.4 型变(Variance) 136
6.5 存在类型 143
6.6 总结 148
第7章 隐式转换和类型系统
结合应用 149
7.1 上下文边界和视图
边界 149
7.2 用隐式转换来捕捉
类型 152
7.2.1 捕获类型用于运行时计算(capturing types for runtime evaluation) 152
7.2.2 使用Manifest 153
7.2.3 捕捉类型约束 154
7.2.4 特定方法(Specialized
method)156
7.3 使用类型类
(type class) 158
7.3.1 作为类型类的
FileLike 161
7.3.2 类型类的好处 164
7.4 用类型系统实现条件
执行 165
7.4.1 异构类型List 167
7.4.2 IndexedView 170
7.5 总结 177
第8章 Scala集合库 178
8.1 使用正确的集合
类型 179
8.1.1 集合库继承层次 179
8.1.2 Traversable 180
8.1.3 Iterable 184
8.1.4 Seq 185
8.1.5 LinearSeq 186
8.1.6 IndexedSeq 188
8.1.7 Set 189
8.1.8 Map 189
8.2 不可变集合 191
8.2.1 Vector 191
8.2.2 List 193
8.2.3 Stream(流) 194
8.3 可变集合 197
8.3.1 ArrayBuffer 197
8.3.2 混入修改事件发布
特质 198
8.3.3 混入串行化特质 198
8.4 用视图和并行集合来
改变计算策略 199
8.4.1 视图 200
8.4.2 并行集合 201
8.5 编写能处理所有集合
类型的方法 204
8.6 总结 209
第9章 Actors 210
9.1 使用Actor的时机 210
9.2 使用有类型的、透明的
引用 214
9.3 把故障限制在故障
区里 219
9.3.1 发散搜集故障区 219
9.3.2 通常的故障处理实践 222
9.4 利用排期区控制
负载 223
9.5 动态Actor拓扑 226
9.6 总结 231
第10章 Scala和Java集成 232
10.1 Scala/Java不匹配 233
10.1.1 基础类型自动打包的
差异 234
10.1.2 可见性的差异 238
10.1.3 不可表达的语言
特性 239
10.2 谨慎使用隐式转换 242
10.2.1对象标识和判等 242
10.2.2 链式隐式转换 244
10.3 小心Java序列化 246
10.4 注解你的注解 250
10.4.1 注解目标 252
10.4.2 Scala和静态属性 253
10.5 总结 254
第11章 函数式编程 255
11.1 计算机科学领域的
范畴论 255
11.2 函子(Functor),
Monad及它们与
范畴的关系 259
11.3 咖喱化和可应用风格
(Applicative style) 264
11.3.1 咖喱化 265
11.3.2 可应用风格 267
11.4 用作工作流的单子 270
11.5 总结 274
内容摘要
Scala是一种多范式的编程语言,它既支持面向对象编程,也支持函数式编程的各种特性。
苏瑞茨著的《深入理解Scala》深入探讨了Scala里几个较为复杂的领域,包括类型系统的高阶内容、
隐式转换、特质的组合技巧、集合、Actor、函数式编程的范畴论等,而且不是干巴巴地讲述语言和库的概念。本书充满各种实用的建议和最佳实践,可以来帮助读者学习怎样把Scala里较少被掌握的部分应用到工作中。
本书不是Scala的入门级教程,而是适合有经验的Scala程序员向专家水平进阶的参考读物。本书适
合想要了解Scala语言的底层机制和技术细节的读者阅读参考。
主编推荐
Scala是一种强大的JVM语言,混合了函数式和面向对象编程范式。你很容易通过图书和上网找到Scala 的介绍性资料,但是很难找到来自实践者的深刻洞见和代码示例,而本书可以满足你的需要。本书没有什么棘手的理论——只包含众多新鲜、实用的Scala编程技巧。本书适合用于了解Java、Scala或其他面向对象语言的读者。
精彩内容
Scala是一种多范式的编程语言,它既支持面向对象编程,也支持函数式编程的各种特性。
本书深入探讨了Scala里几个较为复杂的领域,包括类型系统的高阶内容、隐式转换、特质的组合技巧、集合、Actor、函数式编程的范畴论等,而且不是干巴巴地讲述语言和库的概念。本书充满各种实用的建议和最佳实践,可以来帮助读者学习怎样把Scala里较少被掌握的部分应用到工作中。 本书不是Scala的入门级教程,而是适合有经验的Scala程序员向专家水平进阶的参考读物。本书适合想要了解Scala语言的底层机制和技术细节的读者阅读参考。
媒体评论
Scala是一种强大的JVM语言,混合了函数式和面向对象编程范式。你很容易通过图书和上网找到Scala 的介绍性资料,但是很难找到来自资深实践者的深刻洞见和代码示例,而本书可以满足你的需要。本书没有什么棘手的理论——只包含众多新鲜、实用的Scala编程技巧。本书适合用于了解Java、Scala或其他面向对象语言的读者。
“权威并且易于理解”。
——MartinOderskyScala之父
“带你深入Scala的内部工作机制”。
——JohnCTylerPROSPricing
“目前为止,我在技术书里读到过的最好的示例”。
——EricWeinbergWaggerDesigns
“一本开拓眼界的书,现在我对Scala知其所以然了”。
——JohnCriffinHibernateSearchinAction合著者
— 没有更多了 —
以下为对购买帮助不大的评价