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

Scala编程

全新正版 极速发货

70.85 4.9折 144 全新

仅1件

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

作者(德)马丁·奥德斯基(Martin Odersky),(美)莱·斯彭(Lex Spoon),(美)比尔·凡纳斯(Bill Venners) 著;高宇翔 译

出版社电子工业出版社

ISBN9787121328428

出版时间2018-01

装帧平装

开本16开

定价144元

货号1201610303

上书时间2024-11-23

书香美美

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
马丁·奥德斯基,是Scala编程语言的。他是瑞士洛桑理工学院(EPFL)的教授,同时也是Typesafe,Inc.(已更名为Lightbend)的创始人。他的研究方向是编程语言和系统,更具体地说,就是如何将面向对象和函数式编程风格有机地结合在一起。自2001年起,他的主要精力集中在设计、实现和改进Scala上。在此之前,他作为Java泛型的合作设计者参与了Java编程语言的开发,同时也是当前javac参考实现的作者。他还是ACM院士。
莱·斯彭,是SemmleLtd.的一名软件工程师。他在EPFL作为博士后围绕着Scala开展了两年的工作。他拥有GeorgiaTech的博士学位,在那里他的主攻方向是动态编程语言的静态分析。除Scala外,他还帮助开发了各类编程语言,包括动态语言Smalltalk、科学计算语言X10,以及支撑Semmle的逻辑编程语言。他和他的夫人一起生活在Atlanta,他们有两只猫和一只吉娃娃。
比尔·凡纳斯,是ArtimaInc.的,Artima开发者网站的发行人,以及EscalateSoftware,LLC的联合创始人。他著有《InsidetheJavaVirtualMachine》,这是一本面向程序员讲解Java平台架构和内部实现原理的书。他在《JavaWorld》杂志上的专栏很受欢迎,主题涵盖Java内部实现、面向对象的设计和Jini。Bill从Jini社区创立之初便十分活跃,领导了Jini社区的ServiceUI项目,其API成为Jini服务事实上的UI标准。他还是ScalaTest的主要开发者和设计者,一个面向Scala和Java开发者的开源测试工具。
高宇翔,资历软件开发工程师和系统架构师,同时也是Scala在靠前的早期布道者和实践者,曾译有《快学Scala(第2版)》、《快学Scala》(靠前版)和《Scala编程》(靠前版)等专业书籍。

目录
序XXIX
致谢XXVI
引言XXIX
第1章一门可伸缩的语言1
1.1一门按需伸缩的语言2
1.2是什么让Scala能屈能伸?7
1.3为什么要用Scala?11
1.4Scala寻根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.4Scala应用程序65
4.5App特质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.1Rational类的规格定义93
6.2构建Rational94
6.3重新实现toString方法96
6.4检查前置条件97
6.5添加字段98
6.6自引用100
6.7辅助构造方法101
6.8私有字段和方法102
6.9定义操作符.104
6.10Scala中的标识符106
6.11方法重载108
6.12隐式转换111
6.13注意事项112
6.14结语112
第7章内建的控制结构114
7.1if表达式115
7.2while循环116
7.3for表达式119
7.4用try表达式实现异常处理125
7.5match表达式129
7.6没有break和continue的日子131
7.7变量作用域134
7.8对指令式代码进行重构137
7.9结语139
第8章函数和闭包140
8.1方法140
8.2局部函数142
8.3一等函数144
8.4函数字面量的简写形式147
8.5占位符语法147
8.6部分应用的函数149
8.7闭包152
8.8特殊的函数调用形式156
8.9尾递归159
8.10结语163
第9章控制抽象164
9.1减少代码重复164
9.2简化调用方代码169
9.3柯里化170
9.4编写新的控制结构173
9.5传名参数176
9.6结语178
第10章组合和继承179
10.1一个二维的布局类库179
10.2抽象类180
10.3定义无参方法182
10.4扩展类184
10.5重写方法和字段186
10.6定义参数化字段188
10.7调用超类构造方法189
10.8使用override修饰符190
10.9多态和动态绑定192
10.10声明final成员195
10.11使用组合和继承196
10.12实现above、beside和toString198
10.13定义工厂对象201
10.14增高和增宽204
10.15放在一起206
10.16结语207
第11章Scala的继承关系208
11.1Scala的类继承关系208
11.2基本类型的实现机制212
11.3底类型(bottomtypes)215
11.4定义自己的值类型216
11.5结语219
第12章特质220
12.1特质如何工作220
12.2瘦接口和富接口224
12.3示例:矩形对象225
12.4Ordered特质227
12.5作为可叠加修改的特质229
12.6为什么不用多重继承?234
12.7要特质还是不要特质?238
12.8结语238
第13章包和引入240
13.1将代码放进包里240
13.2对相关代码的精简访问242
13.3引入246
13.4隐式引入249
13.5访问修饰符250
13.6包对象256
13.7结语257
第14章断言和测试258
14.1断言258
14.2用Scala写测试260
14.3翔实的失败报告262
14.4作为规格说明的测试263
14.5基于性质的测试267
14.6组织和运行测试268
14.7结语270
第15章样例类和模式匹配271
15.1一个简单的例子271
15.2模式的种类276
15.3模式守卫286
15.4模式重叠287
15.5密封类289
15.6Option类型291
15.7到处都是模式293
15.8一个复杂的例子298
15.9结语306
第16章使用列表307
16.1List字面量307
16.2List类型308
16.3构建列表309
16.4列表的基本操作309
16.5列表模式310
16.6List类的初阶方法312
16.7List类的高阶方法324
16.8List对象的方法333
16.9同时处理多个列表335
16.10理解Scala的类型推断算法336
16.11结语339
第17章使用其他集合类340
17.1序列340
17.2集和映射344
17.3在可变和不可变集合类之间选择352
17.4初始化集合355
17.5元组358
17.6结语361
第18章可变对象362
18.1什么样的对象是可变的?362
18.2可被重新赋值的变量和属性365
18.3案例分析:离散事件模拟368
18.4用于描述数字电路的语言369
18.5SimulationAPI372
18.6电路模拟376
18.7结语384
第19章类型参数化385
19.1函数式队列385
19.2信息隐藏389
19.3型变注解392
19.4检查型变注解397
19.5下界400
19.6逆变402
19.7对象私有数据405
19.8上界407
19.9结语410
第20章抽象成员411
20.1抽象成员概览411
20.2类型成员412
20.3抽象的val413
20.4抽象的var414
20.5初始化抽象的val415
20.6抽象类型.423
20.7路径依赖类型425
20.8改良类型428
20.9枚举429
20.10案例分析:货币431
20.11结语441
第21章隐式转换和隐式参数442
21.1隐式转换442
21.2隐式规则445
21.3隐式转换到一个预期的类型448
21.4转换接收端450
21.5隐式参数454
21.6上下文界定460
21.7当有多个转换可选时463
21.8调试465
21.9结语467
第22章实现列表468
22.1List类的原理468
22.2ListBuffer类475
22.3List类的实践476
22.4外部可见的函数式479
22.5结语480
第23章重访for表达式481
23.1for表达式483
23.2N皇后问题484
23.3用for推导式进行查询487
23.4用for推导式进行翻译489
23.5反过来494
23.6泛化for表达式495
23.7结语497
第24章深入集合类498
24.1可变和不可变集合499
24.2集合的一致性501
24.3Traversable特质503
24.4Iterable特质508
24.5序列型特质Seq、IndexedSeq和LinearSeq512
24.6集517
24.7映射521
24.8具体的不可变集合类525
24.9具体的可变集合类532
24.10数组539
24.11字符串544
24.12性能特征545
24.13相等性547
24.14视图548
24.15迭代器554
24.16从头创建集合561
24.17Java和Scala集合互转563
24.18结语564
第25章Scala集合架构565
25.1集合构建器565
25.2抽取公共操作567
25.3集成新的集合572
25.4结语588
第26章提取器589
26.1示例:提取电子邮箱地址589
26.2提取器591
26.3提取0或1个变量的模式594
26.4提取可变长度参数的模式596
26.5提取器和序列模式598
26.6提取器和样例类的对比599
26.7正则表达式601
26.8结语604
第27章注解606
27.1为什么要有注解?606
27.2注解的语法607
27.3标准注解609
27.4结语613
第28章使用XML614
28.1半结构化数据614
28.2XML概览615
28.3XML字面量616
28.4序列化618
28.5拆解XML620
28.6反序列化622
28.7加载和保存623
28.8对XML做模式匹配624
28.9结语628
第29章用对象实现模块化编程629
29.1问题描述630
29.2食谱应用程序631
29.3抽象634
29.4将模块拆分成特质638
29.5运行时链接640
29.6跟踪模块实例642
29.7结语643
第30章对象相等性645
30.1Scala中的相等性645
30.2编写相等性方法646
30.3为参数化类型定义相等性660
30.4如何编写equals和hashCode方法664
30.5结语668
第31章结合Scala和Java669
31.1从Java使用Scala669
31.2注解672
31.3通配类型678
31.4同时编译Scala和Java680
31.5基于Scala2.12特性的Java8集成681
31.6结语685
第32章Future和并发编程686
32.1天堂里的烦恼687
32.2异步执行和Try688
32.3使用Future690
32.4测试Future705
32.5结语708
第33章组合子解析709
33.1示例:算术表达式710
33.2运行你的解析器712
33.3基本的正则表达式解析器713
33.4另一个示例:JSON714
33.5解析器输出717
33.6实现组合子解析器723
33.7字符串字面量和正则表达式732
33.8词法分析和解析733
33.9错误报告734
33.10回溯和LL(1)736
33.11结语737
第34章GUI编程740
34.1第一个Swing应用程序740
34.2面板和布局743
34.3处理事件745
34.4示例:摄氏/华氏转换器748
34.5结语750
第35章SCells试算表752
35.1可视化框架752
35.2将数据录入和显示分开755
35.3公式758
35.4解析公式760
35.5求值序765
35.6操作类库768
35.7变更通知771
35.8结语775
附录AUnix和Windows环境的Scalaz脚本777
术语表778
关于作者798

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

   相关推荐   

—  没有更多了  —

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

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