Scala編程(第5版)

Scala編程(第5版)

《Scala編程(第5版)》是電子工業出版社出版的圖書,作者是【德】Martin Odersky。

基本介紹

  • 中文名:Scala編程(第5版)
  • 作者:【德】Martin Odersky
  • 譯者:高宇翔
  • 出版社:電子工業出版社
  • 頁數:656 頁
  • 定價:188 元
  • 開本:16 開
  • ISBN: 9787121428326
內容簡介,圖書目錄,作者簡介,

內容簡介

由直接參與 Scala 開發的一線人員編寫,深入介紹了 Scala 這門結合面向對象和函式式的程式語言的核心特性和設計取捨。

圖書目錄

序 XIX
引言 XXIII
第1章 一門可伸縮的語言 1
1.1 一門按需伸縮的語言 2
1.2 是什麼讓Scala能屈能伸 6
1.3 為什麼要用Scala 9
1.4 Scala尋根 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.5 Scala應用程式 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.1 Rational類的規格定義 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.10 Scala中的標識符 108
6.11 方法重載 111
6.12 擴展方法 113
6.13 注意事項 114
6.14 結語 115
第7章 內建的控制結構 116
7.1 if表達式 117
7.2 while循環 118
7.3 for表達式 121
7.4 用try表達式實現異常處理 127
7.5 match表達式 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.9 SAM類型 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.1 List字面量 285
14.2 List類型 286
14.3 構建列表 287
14.4 列表的基本操作 287
14.5 列表模式 289
14.6 List類的初階方法 291
14.7 List類的高階方法 303
14.8 List對象的方法 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
15.5 元組 337
15.6 結語 340
第16章 可變對象 341
16.1 什麼樣的對象是可變的 341
16.2 可被重新賦值的變數和屬性 344
16.3 案例分析:離散事件模擬 347
16.4 用於描述數字電路的語言 348
16.5 模擬API 351
16.6 電路模擬 356
16.7 結語 363
第17章 Scala的繼承關係 365
17.1 Scala的類繼承關係 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 抽象的val 423
20.4 抽象的var 424
20.5 初始化抽象的val 425
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.6 Scala如何查找擴展方法 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.3 Iterable特質 532
24.4 序列型特質Seq、IndexedSeq和LinearSeq 539
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.16 Java和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

作者簡介

Martin Odersky是Scala語言的締造者。他是瑞士洛桑理工學院(EPFL)的教授,自2001年起,由他帶領的團隊開發了Scala語言、類庫和編譯器。他同時是Lightbend公司的創始人,參與設計了Java泛型,還是當前javac編譯器參考實現的原作者。
Lex Spoon在EPFL開展了為期兩年的Scala工作,是Square公司的軟體工程師。
Bill Venners是Artima公司總裁,是Scala Center諮詢委員會的社區代表,還是測試框架ScalaTest的設計者。
Frank Sommers是Autospaces公司的總裁。
譯者簡介
高宇翔,資深軟體開發工程師和系統架構師,同時也是Scala在國內的早期布道者和實踐者,曾譯有《Scala編程》(第1版)、《Scala編程》(第3版)、《Scala編程》(第4版),以及《快學Scala》(第1版)、《快學Scala》(第2版)等廣為人知的Scala語言技術名著。
關於中文版審校者:鐘倫甫,Scala愛好者和早期布道者。2012年在淘寶中間件團隊任職技術專家期間,用Scala編寫過一款名為HouseMD 的JVM診斷工具並開源。後又作為聯合譯者,參與了《Scala函式式編程》一書的翻譯;黃勝濤,有10年以上系統運維和8年以上軟體開發經驗,曾就職於攜程旅行網、LOTTE,目前在上海昱極科技有限公司從事DevOps方面工作。

相關詞條

熱門詞條

聯絡我們