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版)等專業書籍。
序.XXIV
緻謝.XXVI
引言.XXIX
第1章 一門可伸縮的語言.1
1.1 一門按需伸縮的語言 2
1.2 是什麼讓Scala能屈能伸? 7
1.3 為什麼要用Scala?.11
1.4 Scala尋根 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.4 Scala應用程序 65
4.5 App特質 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.1 Rational類的規格定義 93
6.2 構建Rational 94
6.3 重新實現toString方法 96
6.4 檢查前置條件 97
6.5 添加字段 98
6.6 自引用.100
6.7 輔助構造方法.101
6.8 私有字段和方法.102
6.9 定義操作符 104
6.10 Scala中的標識符.106
6.11 方法重載.108
6.12 隱式轉換.111
6.13 注意事項.112
6.14 結語 112
第7章 內建的控製結構 114
7.1 if錶達式.115
7.2 while循環 116
7.3 for錶達式 119
7.4 用try錶達式實現異常處理125
7.5 match錶達式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和toString.198
10.13 定義工廠對象.201
10.14 增高和增寬.204
10.15 放在一起 206
10.16 結語207
第11章 Scala的繼承關係208
11.1 Scala的類繼承關係208
11.2 基本類型的實現機製212
11.3 底類型(bottom types).215
11.4 定義自己的值類型.216
11.5 結語219
第12章 特質.220
12.1 特質如何工作 220
12.2 瘦接口和富接口 224
12.3 示例:矩形對象 225
12.4 Ordered特質 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.6 Option類型.291
15.7 到處都是模式 293
15.8 一個復雜的例子 298
15.9 結語 306
第16章 使用列錶307
16.1 List字麵量 307
16.2 List類型 308
16.3 構建列錶.309
16.4 列錶的基本操作 309
16.5 列錶模式.310
16.6 List類的初階方法 312
16.7 List類的高階方法 324
16.8 List對象的方法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.5 Simulation API.372
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 初始化抽象的val.415
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.1 List類的原理.468
22.2 ListBuffer類 475
22.3 List類的實踐.476
22.4 外部可見的函數式.479
22.5 結語 480
第23章 重訪for錶達式 481
23.1 for錶達式483
23.2 N皇後問題.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.3 Traversable特質 503
24.4 Iterable特質508
24.5 序列型特質Seq、IndexedSeq和LinearSeq.512
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.17 Java和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.2 XML概覽615
28.3 XML字麵量 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.1 Scala中的相等性.645
30.2 編寫相等性方法 646
30.3 為參數化類型定義相等性 660
30.4 如何編寫equals和hashCode方法.664
30.5 結語 668
第31章 結閤Scala和Java 669
31.1 從Java使用Scala.669
31.2 注解 672
31.3 通配類型.678
31.4 同時編譯Scala和Java680
31.5 基於Scala 2.12特性的Java 8集成681
31.6 結語 685
第32章 Future和並發編程 686
32.1 天堂裏的煩惱 687
32.2 異步執行和Try.688
32.3 使用Future.690
32.4 測試Future.705
32.5 結語 708
第33章 組閤子解析709
33.1 示例:算術錶達式.710
33.2 運行你的解析器 712
33.3 基本的正則錶達式解析器 713
33.4 另一個示例:JSON 714
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
附錄A Unix和Windows環境的Scala腳本.777
關於作者 798
· · · · · · (
收起)
《Scala編程(第3版)》由直接參與Scala開發的一綫人員編寫,因而對原理的解讀和應用的把握更加值得信賴。《Scala編程(第3版)》麵嚮具有一定編程經驗的開發者,目標是讓讀者能夠全麵瞭解和掌握Scala編程語言的核心特性,並能夠深入理解Scala這門語言在設計取捨背後的動因。即便是不直接使用Scala或從事一綫編程工作的讀者,也能從《Scala編程(第3版)》學到大量關於函數式和麵嚮對象的編程概念和技巧。
Scala編程(第3版) epub pdf mobi txt 電子書 下載 2024
Scala編程(第3版) 下載 epub mobi pdf txt 電子書