图书介绍
Scala编程【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- (美)奥德斯基,(美)莱斯彭,(美)凡纳斯著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121121197
- 出版时间:2010
- 标注页数:494页
- 文件大小:24MB
- 文件页数:527页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
Scala编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
目录概览3
第1章 可伸展的语言3
第2章 Scala入门初探15
第3章 Scala入门再探23
第4章 类和对象37
第5章 基本类型和操作47
第6章 函数式对象61
第7章 内建控制结构73
第8章 函数和闭包89
第9章 控制抽象103
第10章 组合与继承113
第11章 Scala的层级131
第12章 特质137
第13章 包和引用151
第14章 断言和单元测试161
第15章 样本类和模式匹配171
第16章 使用列表193
第17章 集合类型215
第18章 有状态的对象233
第19章 类型参数化249
第20章 抽象成员265
第21章 隐式转换和参数285
第22章 实现列表301
第23章 重访For表达式309
第24章 抽取器(Extractors)321
第25章 注解331
第26章 使用XM L335
第27章 使用对象的模块化编程345
第28章 对象相等性355
第29章 结合Scala和Java373
第30章 Actor和并发383
第31章 连结符解析407
第32章 GUI编程427
第33章 Scell试算表435
附录A Unix和Windows的Scala脚本453
术语表455
参考文献465
关于作者467
索引469
图示清单18
图2.1 Scala函数的基本构成18
图2.2 Scala函数字面量的语法22
图3.1 Scala里所有的操作符都是方法调用24
图3.2 Scala的Set类层级30
图3.3 Scala的Map类层级31
图10.1 ArrayElement的类关系图116
图10.2 LineElement的类关系图120
图10.3 布局元素的类层级121
图10.4 修改了LineElement后的类层级124
图11.1 Scala类层级图132
图12.1 Cat类的继承层级和线性化次序147
图14.1 ScalaTest的图形报表器169
图17.1 Scala集合类型的类层级215
图17.2 Iterator的类层级216
图18.1 基本门电路237
图18.2 半加法电路238
图18.3 全加法电路239
图19.1 函数类型参数中的协变与逆变261
图22.1 Scala列表的类层级302
图22.2 展示的Scala列表构造304
图32.1 一个简单的Swing应用程序:初始状态(左)和拉大之后的状态(右)428
图32.2 一个有反应的Swing应用程序:初始状态(左)及点击后的状态(右)429
图32.3 摄氏度与华氏度之间的转换器432
图33.1 一个简单的试算表表格436
图33.2 显示自身的单元格439
图33.3 显示方程式的单元格444
图33.4 可以求值的单元格448
表格清单27
表3.1 List的一些方法和作用27
表5.1 一些基本类型47
表5.2 特殊字符字面量转义序列50
表5.3 操作符优先级59
表5.4 一些富操作60
表5.5 富包装类60
表12.1 Cat层级中类型的线性化148
表13.1 LegofJourney.distance上的私有限定符效果159
表16.1 基本列表操作195
表17.1 集的常用操作222
表17.2 映射的常用操作223
表17.3 默认的不可变集实现225
表17.4 默认的不可变映射实现225
表31.1 解析器连结符汇总415
代码清单23
清单3.1 用类型参数化数组23
清单3.2 创造和初始化数组25
清单3.3 创造和初始化列表26
清单3.4 创造和使用元组28
清单3.5 创造、初始化和使用不可变集29
清单3.6 创建、初始化和使用可变集30
清单3.7 创造、初始化和使用可变映射31
清单3.8 创造、初始化和使用不可变映射32
清单3.9 没有副作用或var的函数33
清单3.10 从文件中读入行34
清单3.11 对文件的每行记录打印格式化的字符数量36
清单4.1 类ChecksumAccumulator的最终版40
清单4.2 类ChecksumAccumulator的伴生对象42
清单4.3 程序Summer43
清单4.4 使用Application特质45
清单6.1 带字段的Rational64
清单6.2 带有从构造器的Rational66
清单6.3 带私有字段和方法的Rational67
清单6.4 带操作符方法的Rational68
清单6.5 含有重载方法的Rational71
清单7.1 在Scala里根据条件做初始化的惯例74
清单7.2 用while循环计算最大公约数74
清单7.3 用do-while从标准输入读取信息75
清单7.4 使用递归计算最大公约数75
清单7.5 用for表达式列举目录中的文件76
清单7.6 用带过滤器的for发现.scala文件77
清单7.7 在for表达式中使用多个过滤器78
清单7.8 在for表达式中使用多个发生器78
清单7.9 在for表达式里的流间赋值78
清单7.10 用for把Array[File]转换为Array[Int]79
清单7.11 Scala的try-catch子句80
清单7.12 Scala的try-finally子句81
清单7.13 能够产生值的catch子句82
清单7.14 有副作用的match表达式82
清单7.15 生成值的match表达式83
清单7.16 不带break或continue的循环84
清单7.17 不用var做循环的递归替代方法84
清单7.18 打印乘法表时的变量范围85
清单7.19 创建乘法表的函数式方法87
清单8.1 带私有的processLine方法的LongLines对象89
清单8.2 带局部processLine方法的LongLines91
清单9.1 使用闭包减少代码重复105
清单9.2 定义和调用“陈旧的”函数107
清单9.3 定义和调用柯里化的函数107
清单9.4 使用借贷模式写文件110
清单9.5 使用传名参数111
清单10.1 定义抽象方法和类114
清单10.2 定义无参数方法width和height114
清单10.3 定义ArrayElement为Element的子类116
清单10.4 用字段重写无参数方法117
清单10.5 定义contents为参数化字段118
清单10.6 调用超类构造器119
清单10.7 声明final方法123
清单10.8 声明final类123
清单10.9 带有above、beside和toString的类Element126
清单10.10 带有工厂方法的工厂对象127
清单10.11 重构以使用工厂方法的类Element127
清单10.12 用私有类隐藏实现128
清单10.13 有了widen和heighten方法的Element129
清单10.14 Spiral程序130
清单12.1 Philosophical特质的定义137
清单12.2 使用extends混入特质137
清单12.3 使用with混入特质138
清单12.4 混入多个特质138
清单12.5 定义丰满了的特质141
清单12.6 抽象类IntQueue143
清单12.7 使用ArrayBuffer实现BasicIntQueue143
清单12.8 Doubling可堆叠改动特质144
清单12.9 在使用new实例化的时候混入特质145
清单12.10 可堆叠改动特质Incrementing和Filtering145
清单13.1 把文件的全部内容放进包里151
清单13.2 同一个文件嵌入不同的包152
清单13.3 较少缩进的嵌入包152
清单13.4 Scala的包确实是嵌套的152
清单13.5 访问隐藏的包名153
清单13.6 鲍勃最爱的水果,已为引用做好准备154
清单13.7 引用规范的(不是单例)对象的成员154
清单13.8 引用包名155
清单13.9 Scala和Java的private访问差异157
清单13.10 Scala和Java的protected访问差异157
清单13.11 使用访问修饰词的灵活的保护作用域158
清单13.12 访问伴生类和对象的私有成员160
清单14.1 使用断言161
清单14.2 使用ensuring断言函数结果162
清单14.3 使用Suite编写测试方法162
清单14.4 使用FunSuite编写测试函数163
清单14.5 使用JUnit3Suite编写JUnit测试165
清单14.6 使用TestNGSuite编写TestNG测试165
清单14.7 使用ScalaTest的Spec规格化和测试行为166
清单14.8 使用specs架构规格化和测试行为167
清单14.9 使用ScalaCheck编写基于属性的测试167
清单14.10 使用Checkers在JUnit的TestCase里检查属性168
清单15.1 定义样本类171
清单15.2 simplifyTop函数,使用了模式匹配173
清单15.3 带有空“默认”情况的模式匹配174
清单15.4 使用通配模式的模式匹配174
清单15.5 使用常量模式的模式匹配175
清单15.6 使用变量模式的模式匹配175
清单15.7 带有构造器模式的模式匹配176
清单15.8 有固定长度的序列模式177
清单15.9 匹配任意长度的序列模式177
清单15.10 带有元组模式的模式匹配177
清单15.11 带有类型化模式的模式匹配177
清单15.12 使用isInstanceOf和asInstanceOf(不好的风格)178
清单15.13 带有变量绑定(用@符号)的模式180
清单15.14 带有模式守卫的match表达式180
清单15.15 样本依次被调用的匹配表达式181
清单15.16 封闭了的样本类层级182
清单15.17 用一个赋值语句定义多个变量184
清单15.18 带有元组模式的for表达式186
清单15.19 从列表中拣出匹配于模式的元素187
清单15.20 表达式格式化器的上半截189
清单15.21 表达式格式化器的下半截190
清单15.22 输出格式化了的表达式的应用程序191
清单16.1 List类的归并排序203
清单17.1 Predef中定义的默认映射和集221
清单17.2 混入SynchronizedMap特质226
清单18.1 可变的银行账号类233
清单18.2 带有公开var变量的类235
清单18.3 公开的var变量是如何扩展为getter和setter方法的235
清单18.4 直接定义getter和setter方法236
清单18.5 定义不带关联字段的getter和setter236
清单18.6 halfAdder方法239
清单18.7 fullAdder方法239
清单18.8 Simulation类240
清单18.9 BasicCircuitSimulation类的前半部分243
清单18.10 BasicCircuitSimulation类的后半部分244
清单18.11 CircuitSimulation类246
清单19.1 基本的函数式队列251
清单19.2 通过私有化隐藏主构造器251
清单19.3 伴生对象的apply工厂方法252
清单19.4 数式队列的类型抽象253
清单19.5 非协变(严谨)的Cell类254
清单19.6 带有下界的类型参数258
清单19.7 逆变的输出通道259
清单19.8 Functionl的协变和逆变260
清单19.9 函数类型参数变化型的演示261
清单19.10 优化了的函数式队列262
清单19.11 混入了Ordered特质的Person类263
清单19.12 带有上界的归并排序264
清单20.1 重写的抽象val及无参方法267
清单20.2 声明抽象var267
清单20.3 抽象var是如何被扩展为getter和setter方法的267
清单20.4 使用了抽象val的特质268
清单20.5 匿名类表达式中的预初始化字段269
清单20.6 对象定义中的预初始化字段270
清单20.7 类定义中的预初始化字段270
清单20.8 使用懒加载val初始化特质271
清单20.9 用抽象类型建模合适的食物274
清单20.10 在子类中实现抽象类型274
清单20.11 美国货币区域281
清单20.12 欧洲和日本的货币区域282
清单20.13 带有汇率表的转换器对象282
清单20.14 CurrencyZone的完整代码283
清单21.1 带多个参数的隐式参数列表293
清单21.2 带有上界的函数294
清单21.3 带有隐式参数的函数295
清单21.4 使用了内部隐式参数的函数296
清单21.5 带有视界的函数297
清单21.6 使用隐式参数的样例代码299
清单21.7 完成类型检查和隐式内容插入之后的样例代码299
清单22.1 Nil单例对象的定义302
清单22.2 在子类型列表上前缀超类型元素304
清单22.3 List类的::(cons)方法定义304
清单22.4 List类的:::方法定义305
清单22.5 List类的map方法定义306
清单22.6 List子类::的定义307
清单24.1 EMail字符串抽取器对象322
清单24.2 Twice字符串抽取器对象324
清单24.3 UpperCase字符串抽取器对象324
清单24.4 Domain字符串抽取器对象325
清单24.5 ExpandedEMail抽取器对象326
清单24.6 定义了unapplySeq方法的抽取器327
清单24.7 RichString是如何定义r方法的329
清单27.1 简化的Food实体类346
清单27.2 简化的Recipe实体类347
清单27.3 可以用于测试的Food和Recipe例子347
清单27.4 仿制的数据库和浏览器模块347
清单27.5 添加了类别的数据库和浏览器模块348
清单27.6 带抽象数据库val字段的Browser类349
清单27.7 带抽象方法的Database类349
清单27.8 Database的子类对象SimpleDatabase350
清单27.9 Browser子类对象SimpleBrowser350
清单27.10 学生数据库与浏览器350
清单27.11 食品分类的特质351
清单27.12 混入了FoodCategories特质的Database351
清单27.13 仅由混入组成的SimpleDatabase对象351
清单27.14 SimpleFoods特质351
清单27.15 带有自身类型的SimpleRecipes352
清单27.17 使用单例类型354
清单28.1 调用canEqual的超类equals方法363
清单28.2 调用canEqual的子类equals方法364
清单28.3 二叉树的类继承关系365
清单28.4 带有equals和hashCode方法的参数化类型368
清单28.5 带有equals和hashCode的Rational类369
清单29.1 声明了Java throws语句的Scala方法376
清单30.1 一个简单的actor384
清单30.2 调用receive的actor386
清单30.3 调用react的actor389
清单30.4 使用loop的actor方法act389
清单30.5 使用助手actor来避免阻塞自己的actor391
清单30.6 使用样本类作为消息的actor394
清单30.7 Simulant特质399
清单30.8 加法器组件404
清单31.1 一个算术表达式解析器408
清单31.2 针对Java标识符的正则表达式解析器410
清单31.3 JSON格式的数据411
清单31.4 一个简单的JSON解析器411
清单31.5 返回有意义的结果的完整JSON解析器414
清单31.6 ~连结符方法419
清单32.1 一个用Scala编写的简单Swing应用程序427
清单32.2 在面板上组装组件429
清单32.3 实现一个有反应的Swing应用程序432
清单32.4 温度转换器的一个实现433
清单33.1 图33.1中的试算表的代码436
清单33.2 试算表应用程序的主程序437
清单33.3 带有rendererComponent方法的试算表438
清单33.4 第一版的Model类438
清单33.5 代表公式的类440
清单33.6 解析公式的试算表443
清单33.7 Evalutor特质的evaluate方法445
清单33.8 一个算术操作库446
清单33.9 完成的试算表组件451
热门推荐
- 1515964.html
- 3398131.html
- 3320161.html
- 2432556.html
- 1305229.html
- 2069315.html
- 1618063.html
- 546061.html
- 3787754.html
- 2484735.html
- http://www.ickdjs.cc/book_1507486.html
- http://www.ickdjs.cc/book_3646407.html
- http://www.ickdjs.cc/book_2615935.html
- http://www.ickdjs.cc/book_2296981.html
- http://www.ickdjs.cc/book_1991640.html
- http://www.ickdjs.cc/book_1187410.html
- http://www.ickdjs.cc/book_1458808.html
- http://www.ickdjs.cc/book_1327992.html
- http://www.ickdjs.cc/book_443881.html
- http://www.ickdjs.cc/book_639030.html