Scala编程(第3版)
正版图书塑封 14点之前订单当日发货 91003159994192887814
¥
13.97
1.0折
¥
144
九五品
仅1件
作者高宇翔 译
出版社电子工业出版社
出版时间2017-11
版次3
装帧平装
货号91003159994192887814
上书时间2024-12-10
商品详情
- 品相描述:九五品
图书标准信息
-
作者
高宇翔 译
-
出版社
电子工业出版社
-
出版时间
2017-11
-
版次
3
-
ISBN
9787121328428
-
定价
144.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
832页
-
字数
1231千字
-
正文语种
简体中文
- 【内容简介】
-
本书由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的把握更加值得信赖。本书面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握Scala编程语言的核心特性,并能够深入理解Scala这门语言在设计取舍背后的动因。即便是不直接使用Scala或从事一线编程工作的读者,也能从本书学到大量关于函数式和面向对象的编程概念和技巧。
- 【作者简介】
-
Martin Odersky 是Scala 编程语言的缔造者。他是瑞士洛桑理工学院(EPFL)的教授,同时也是Typesafe, Inc.(已更名为Lightbend)的创始人。他的研究方向是编程语言和系统,更具体地说,就是如何将面向对象和函数式编程风格有机地结合在一起。自2001 年起,他的主要精力集中在设计、实现和改进Scala 上。在此之前,他作为Java 泛型的合作设计者参与了Java 编程语言的开发,同时也是当前javac 参考实现的作者。他还是ACM 院士。Lex Spoon 是Semmle Ltd. 的一名软件工程师。他在EPFL 作为博士后围绕着Scala 开展了两年的工作。他拥有Georgia Tech 的博士学位,在那里他的主攻方向是动态编程语言的静态分析。除Scala 外,他还帮助开发了各类编程语言,包括动态语言Smalltalk、科学计算语言X10,以及支撑Semmle 的逻辑编程语言。他和他的夫人一起生活在Atlanta,他们有两只猫和一只吉娃娃。Bill Venners 是Artima Inc. 的主席,Artima 开发者网站(ww.artima.com)的发行人,以及Escalate Software, LLC 的联合创始人。他著有《Inside theJava Virtual Machine》,这是一本面向程序员讲解Java 平台架构和内部实现原理的书。他在《JavaWorld》杂志上的专栏很受欢迎,主题涵盖Java 内部实现、面向对象的设计和Jini。Bill 从Jini 社区创立之初便十分活跃,领导了Jini 社区的ServiceUI 项目,其API 成为Jini 服务事实上的UI 标准。他还是ScalaTest 的主要开发者和设计者,一个面向Scala 和Java 开发者的开源测试工具。
高宇翔,资深软件开发工程师和系统架构师,同时也是Scala在国内的早期布道者和实践者,曾译有《快学Scala(第2版)》、《快学Scala》(第1版)和《Scala编程》(第1版)等专业书籍。
- 【目录】
-
序xx
致谢xxvi
引言xx
章一门可伸缩的语言1
1.1一门按需伸缩的语言2
1.2是什么让scala能屈能伸?7
1.3为什么要用scala?11
1.4scala寻根17
1.5结语19
第2章scala入门20
步使用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
0步使用集和映43
1步识别函数式编程风格48
2步从文件读取文本行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
0章组合和继承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
1章scala的继承关系208
11.1scala的类继承关系208
11.2基本类型的实现机制212
11.3底类型(bottomtypes)215
11.4定义自己的值类型216
11.5结语219
2章特质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
3章包和引入240
13.1将代码放进包里240
13.2对相关代码的精简访问242
13.3引入246
13.4隐式引入249
13.5访问修饰符250
13.6包对象256
13.7结语257
4章断言和测试258
14.1断言258
14.2用scala写测试260
14.3翔实的失败报告262
14.4作为规格说明的测试263
14.5基于质的测试267
14.6组织和运行测试268
14.7结语270
5章样例类和模式匹配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
6章使用列表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
7章使用其他集合类340
17.1序列340
17.2集和映344
17.3在可变和不可变集合类之间选择352
17.4初始化集合355
17.5元组358
17.6结语361
8章可变对象362
18.1什么样的对象是可变的?362
18.2可被重新赋值的变量和属365
18.3案例分析:离散事件模拟368
18.4用于描述数字电路的语言369
18.5simulationapi372
18.6电路模拟376
18.7结语384
9章类型参数化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
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价