作 者:(德)馬丁·奧德斯基 等 著 高宇翔 譯
定 價:188
出 版 社:電子工業出版社
出版日期:2022年02月01日
頁 數:656
裝 幀:平裝
ISBN:9787121428326
"《Scala編程(第5版)》是Scala的權威圖書。Scala是Java平臺上的一門功能強大的主流語言,它以獨到的方式將面向對像和函數式編程的概念有機地結合在一起,供開發者使用。這本Scala的權威圖書由Scala語言的設計者共同編寫,將循序漸進地向你介紹Scala編程語言和它背後的設計理念。為了幫助你更好地學習,本書做了很多仔細的編排和組織。最開始的幾章將教給你足夠多的基礎知識,讓你可以直接上手用Scala處理簡單任務。本書嚴格遵循這樣的原則:每個新的概念都基於之前已經出現過的概念,等
●序XIX
引言XXIII
第1章一門可伸縮的語言1
1.1一門按需伸縮的語言2
1.2是什麼讓Scala能屈能伸6
1.3為什麼要用Scala9
1.4Scala尋根17
1.5結語19
第2章Scala入門20
第1步使用Scala解釋器21
第2步定義變量22
第3步定義函數25
第4步編寫Scala腳本27
第5步用while做循環;用if做判斷29
第6步用foreach方法和for-do遍歷31
結語34
第3章Scala入門(續)35
第7步用類型參數化數組35
第8步使用列表40
第9組44
第10步使用集和映射45
第11步識別函數式編程風格50
第12步用map方法和for-yield變換53
結語57
第4章類和對像58
4.1類、字段和方法58
4.2分號推斷63
4.3單例對像64
4.4樣例類67
4.5Scala應用程序69
4.6結語71
第5章基礎類型和操作72
5.1一些基礎類型72
5.2字面量73
5.3字符串插值79
5.4操作符即方法81
5.5算術操作84
5.6關繫和邏輯操作85
5.7位運算操作87
5.8對像相等性88
5.9操作符優先級和結合律90
5.10富包裝類93
5.11結語94
第6章函數式對像95
6.1Rational類的規格定義95
6.2構建Rational實例96
6.3重新實現toString方法98
6.4檢查前提條件99
6.5添加字段100
6.6自引用102
6.7輔助構造方法103
6.8私有字段和方法105
6.9定義操作符106
6.10Scala中的標識符108
6.11方法重載111
6.12擴展方法113
6.13注意事項114
6.14結語115
第7章內建的控制結構116
7.1if表達式117
7.2while循環118
7.3for表達式121
7.4用try表達式實現異常處理127
7.5match表達式131
7.6沒有break和continue的日子133
7.7變量作用域135
7.8對指令式代碼進行重構139
7.9結語141
第8章函數和閉包142
8.1方法142
8.2局部函數143
8.3一等函數145
8.4函數字面量的簡寫形式147
8.5占位符語法148
8.6部分應用的函數149
8.7閉包152
8.8特殊的函數調用形式154
8.9SAM類型158
8.10尾遞歸159
8.11結語163
第9章控制抽像164
9.1減少代碼重復164
9.2簡化調用方代碼168
9.3柯裡化170
9.4編寫新的控制結構172
9.5傳名參數175
9.6結語178
第10章組合和繼承179
10.1一個二維的布局類庫179
10.2抽像類180
10.3定義無參方法182
10.4擴展類184
10.5重寫方法和字段187
10.6定義參數化字段188
10.7調用超類構造方法189
10.8使用override修飾符191
10.9多態和動態綁定192
10.10聲明final成員195
10.11使用組合和繼承196
10.12實現above、beside和toString方法198
10.13定義工廠對像201
10.14增高和增寬204
10.15放在一起205
10.16結語207
第11章特質208
11.1特質如何工作208
11.2瘦接口和富接口211
11.3作為可疊加修改的特質214
11.4為什麼不用多重繼承218
11.5特質參數223
11.6結語225
第12章包、引入和導出227
12.1將代碼放進包裡227
12.2對相關代碼的精簡訪問229
12.3引入232
12.4隱式引入236
12.5訪問修飾符237
12.6頂層定義242
12.7導出243
12.8結語247
第13章樣例類和模式匹配248
13.1一個簡單的例子248
13.2模式的種類253
13.3模式守衛264
13.4模式重疊265
13.5密封類267
13.6對Option進行模式匹配269
13.7到處都是模式271
13.8一個復雜的例子276
13.9結語284
第14章使用列表285
14.1List字面量285
14.2List類型286
14.3構建列表287
14.4列表的基本操作287
14.5列表模式289
14.6List類的初階方法291
14.7List類的高階方法303
14.8List對像的方法311
14.9同時處理多個列表313
14.10理解Scala的類型推斷算法315
14.11結語319
第15章使用其他集合類320
15.1序列320
15.2集和映射324
15.3在可變和不可變集合之間選擇331
15.4初始化集合334
1組337
15.6結語340
第16章可變對像341
16.1什麼樣的對像是可變的341
16.2可被重新賦值的變量和屬性344
16.3案例分析:離散事件模擬347
16.4用於描述數字電路的語言348
16.5模擬API351
16.6電路模擬356
16.7結語363
第17章Scala的繼承關繫365
17.1Scala的類繼承關繫365
17.2基本類型的實現機制369
17.3底類型371
17.4定義自己的值類型372
17.5交集類型376
17.6並集類型377
17.7透明特質380
17.8結語382
第18章類型參數化383
18.1函數式隊列383
18.2信息隱藏387
18.3型變注解390
18.4檢查型變注解396
18.5下界399
18.6逆變401
18.7上界404
18.8結語407
第19章枚舉408
19.1枚舉數據類型408
19.2代數數據類型413
19.3泛化代數數據類型415
19.4為什麼說ADT是代數數據類型416
19.5結語420
第20章抽像成員421
20.1抽像成員概覽421
20.2類型成員422
20.3抽像的val423
20.4抽像的var424
20.5初始化抽像的val425
20.6抽像類型433
20.7路徑依賴類型436
20.8改良類型438
20.9案例分析:貨幣439
20.10結語450
第21章上下文參數451
21.1上下文參數的工作原理452
21.2參數化的上下文參數類型456
21.3匿名上下文參數461
21.4作為類型族的參數化上下文參數463
21.5上下文參數的引入466
21.6上下文參數的規則468
21.7當有多個上下文參數可選時471
21.8調試上下文參數473
21.9結語475
第22章擴展方法476
22.1擴展方法的基礎476
22.2泛化的擴展方法479
22.3成組的擴展方法481
22.4使用類型族484
22.5針對上下文參數的擴展方法486
22.6Scala如何查找擴展方法491
22.7結語492
第23章類型族493
23.1為什麼要用類型族493
23.2上下文界定499
23.3主方法502
23.4跨界相等性506
23.5隱式轉換512
23.6類型族案例分析:JSON序列化515
23.7結語526
第24章深入集合類527
24.1可變和不可變集合528
24.2集合的一致性530
24.3Iterable特質532
24.4序列型特質Seq、IndexedSeq和LinearSeq539
24.5集544
24.6映射548
24.7具體的不可變集合類553
24.8具體的可變集合類560
24.9數組565
24.10字符串570
24.11性能特征571
24.12相等性573
24.13視圖574
24.14迭代器579
24.15從頭創建集合585
24.16Java和Scala集合互轉587
24.17結語589
第25章斷言和測試590
25.1斷言590
25.2用Scala寫測試592
25.3翔實的失敗報告594
25.4作為規格說明的測試596
25.5基於屬性的測試599
25.6組織和運行測試601
25.7結語603
術語表604
關於作者627
本書由直接參與Scala開發的一線人員編寫,深入介紹了Scala這門結合面向對像和函數式的編程語言的核心特性和設計取舍。繼第4版後,時隔一年,本書迎來重大更新,內容覆蓋Scala3.0,對新的縮進語法、並集類型、交集類型、枚舉、代數數據類型、上下文參數、特質參數、擴展方法、類型族等都有詳細介紹。本書適合有一定編程經驗的開發者閱讀,尤其是對Scala3.0新特性感興趣的開發者朋友。即便是不直接使用Scala的讀者,也能從本書中學到大量關於函數式和面向對像的編程概念和技巧。