快學Scala(第2版)

快學Scala(第2版)

《快學Scala(第2版)》一書原作者Cay S. Horstmann (凱.S.霍斯特曼),中文版由高宇翔 譯,電子工業出版社2017年7月出版

基本介紹

  • 書名:快學Scala(第2版)
  • 作者:【美】Cay S. Horstmann (凱.S.霍斯特曼)
  • 譯者:高宇翔
  • ISBN:978-7-121-31995-2
  • 頁數:412
  • 定價:108.00
  • 出版社:電子工業出版社
  • 出版時間:2017年7月
  • 開本:16
內容提要,目錄,

內容提要

Scala是一門主要以Java虛擬機(JVM)為目標運行環境並將面向對象和函式式程式語言的最佳特性結合在一起的程式語言。你可以使用Scala編寫出更加精簡的程式,同時充分利用並發的威力。由於Scala默認運行於JVM之上,因此它可以訪問任何Java類庫並且與Java框架進行互操作,比如Scala可以被編譯成JavaScript代碼,讓我們更便捷、高效地開發Web套用。本書從實用角度出發,給出了一份快速的、基於代碼的入門指南。Horstmann以“部落格文章大小”的篇幅介紹了Scala的概念,讓你可以快速地掌握和套用。《快學Scala(第2版)》用易於上手的操作、清晰定義的能力層次,為從初學者到專家的各階段讀者提供全程指導
《快學Scala(第2版)》適合有一定Java編程經驗、對Scala感興趣,並希望儘快掌握Scala核心概念和用法的開發者閱讀。

目錄

譯者序. V
第1版序.XVII
前言.XIX
作者簡介.XXIII
第1章 基礎 A1 1
1.1 Scala解釋器 1
1.2 聲明值和變數 4
1.3 常用類型5
1.4 算術和操作符重載7
1.5 關於方法調用 8
1.6 apply方法 9
1.7 Scaladoc11
練習16
第2章 控制結構和函式 A1 19
2.1 條件表達式20
2.2 語句終止 22
2.3 塊表達式和賦值 22
2.4 輸入和輸出23
2.5 循環25
2.6 高級for循環27
2.7 函式28
2.8 默認參數和帶名參數 L1 29
2.9 變長參數 L1 29
2.10 過程 31
2.11 懶值 L1 31
2.12 異常 32
練習35
第3章 數組相關操作 A1 39
3.1 定長數組 39
3.2 變長數組:數組緩衝40
3.3 遍歷數組和數組緩衝41
3.4 數組轉換 42
3.5 常用算法 44
3.6 解讀Scaladoc 45
3.7 多維數組 47
3.8 與Java的互操作48
練習49
第4章 映射和元組 A1 53
4.1 構造映射 53
4.2 獲取映射中的值 54
4.3 更新映射中的值 55
4.4 疊代映射 56
4.5 已排序映射57
4.6 與Java的互操作57
4.7 元組58
4.8 拉鏈操作 59
練習60
第5章 類 A1 63
5.1 簡單類和無參方法 63
5.2 帶getter和setter的屬性 64
5.3 只帶getter的屬性 67
5.4 對象私有欄位68
5.5 Bean屬性 L1 69
5.6 輔助構造器71
5.7 主構造器 72
5.8 嵌套類 L1 75
練習78
第6章 對象 A1 81
6.1 單例對象 81
6.2 伴生對象 82
6.3 擴展類或特質的對象83
6.4 apply方法84
6.5 應用程式對象85
6.6 枚舉86
練習87
第7章 包和引入 A1 91
7.1 包 91
7.2 作用域規則93
7.3 串聯式包語句95
7.4 檔案頂部標記法 95
7.5 包對象 96
7.6 包可見性 97
7.7 引入97
7.8 任何地方都可以聲明引入 98
7.9 重命名和隱藏方法 99
7.10 隱式引入 99
練習 100
第8章 繼承 A1 103
8.1 擴展類103
8.2 重寫方法 104
8.3 類型檢查和轉換105
8.4 受保護欄位和方法 106
8.5 超類的構造 106
8.6 重寫欄位 107
8.7 匿名子類 109
8.8 抽象類109
8.9 抽象欄位 110
8.10 構造順序和提前定義 L3 110
8.11 Scala類繼承關係 112
8.12 對象相等性 L1114
8.13 值類 L2 116
練習 117
第9章 檔案和正則表達式 A1 121
9.1 讀取行121
9.2 讀取字元 122
9.3 讀取詞法單元和數字 123
9.4 從URL或其他源讀取 124
9.5 讀取二進制檔案124
9.6 寫入文本檔案 124
9.7 訪問目錄 125
9.8 序列化125
9.9 進程控制 A2126
9.10 正則表達式129
9.11 正則表達式組 130
練習 131
第10章 特質 A1 135
10.1 為什麼沒有多重繼承 135
10.2 當作接口使用的特質 137
10.3 帶有具體實現的特質 138
10.4 帶有特質的對象 139
10.5 疊加在一起的特質140
10.6 在特質中重寫抽象方法 141
10.7 當作富接口使用的特質 142
10.8 特質中的具體欄位143
10.9 特質中的抽象欄位144
10.10 特質構造順序145
10.11 初始化特質中的欄位147
10.12 擴展類的特質148
10.13 自身類型 L2 149
10.14 背後發生了什麼 151
練習 152
第11章 操作符 A1 157
11.1 標識符 157
11.2 中置操作符158
11.3 一元操作符159
11.4 賦值操作符160
11.5 優先權 161
11.6 結合性 162
11.7 apply和update方法162
11.8 提取器 L2 164
11.9 帶單個參數或無參數的提取器 L2 166
11.10 unapplySeq方法 L2 167
11.11 動態調用 L2 167
練習 171
第12章 高階函式 L1 175
12.1 作為值的函式 175
12.2 匿名函式177
12.3 帶函式參數的函式178
12.4 參數(類型)推斷179
12.5 一些有用的高階函式 180
12.6 閉包 181
12.7 SAM轉換182
12.8 柯里化 183
12.9 控制抽象185
12.10 return表達式 186
練習 187
第13章 集合 A2 191
13.1 主要的集合特質 192
13.2 可變和不可變集合193
13.3 序列 195
13.4 列表 196
13.5 集197
13.6 用於添加或去除元素的操作符 198
13.7 常用方法201
13.8 將函式映射到集合203
13.9 化簡、摺疊和掃描 A3205
13.10 拉鏈操作 209
13.11 疊代器 210
13.12 流 A3 211
13.13 懶視圖 A3213
13.14 與Java集合的互操作 213
13.15 並行集合 215
練習 217
第14章 模式匹配和樣例類 A2 221
14.1 更好的switch222
14.2 守衛 223
14.3 模式中的變數 223
14.4 類型模式224
14.5 匹配數組、列表和元組 225
14.6 提取器 227
14.7 變數聲明中的模式227
14.8 for表達式中的模式229
14.9 樣例類 229
14.10 copy方法和帶名參數 230
14.11 case語句中的中置表示法231
14.12 匹配嵌套結構232
14.13 樣例類是邪惡的嗎 233
14.14 密封類 234
14.15 模擬枚舉 235
14.16 Option類型 235
14.17 偏函式 L2 236
練習 238
第15章 註解 A2 243
15.1 什麼是註解243
15.2 什麼可以被註解 244
15.3 註解參數245
15.4 註解實現246
15.5 針對Java特性的註解247
15.5.1 Java修飾符 247
15.5.2 標記接口 248
15.5.3 受檢異常 249
15.5.4 變長參數 249
15.5.5 JavaBeans 250
15.6 用於最佳化的註解 250
15.6.1 尾遞歸250
15.6.2 跳轉表生成與內聯 252
15.6.3 可省略方法 253
15.6.4 基本類型的特殊化 254
15.7 用於錯誤和警告的註解 255
練習 256
第16章 XML處理 A2 259
16.1 XML字面量 260
16.2 XML節點 260
16.3 元素屬性262
16.4 內嵌表達式263
16.5 在屬性中使用表達式 264
16.6 特殊節點類型 265
16.7 類XPath表達式266
16.8 模式匹配267
16.9 修改元素和屬性 268
16.10 XML變換269
16.11 載入和保存 270
16.12 命名空間 273
練習 275
第17章 Future A2 277
17.1 在future中運行任務 278
17.2 等待結果280
17.3 Try類 281
17.4 回調 282
17.5 組合future任務 283
17.6 其他future變換 286
17.7 Future對象中的方法288
17.8 Promise.289
17.9 執行上下文291
練習 292
第18章 類型參數 L2 297
18.1 泛型類 298
18.2 泛型函式298
18.3 類型變數界定 298
18.4 視圖界定300
18.5 上下文界定301
18.6 ClassTag上下文界定 301
18.7 多重界定302
18.8 類型約束 L3 302
18.9 型變 304
18.10 協變和逆變點305
18.11 對象不能泛型307
18.12 類型通配符 308
練習 309
第19章 高級類型 L2 313
19.1 單例類型313
19.2 類型投影315
19.3 路徑 316
19.4 類型別名317
19.5 結構類型318
19.6 複合類型319
19.7 中置類型320
19.8 存在類型321
19.9 Scala類型系統 322
19.10 自身類型 323
19.11 依賴注入 325
19.12 抽象類型 L3 327
19.13 家族多態 L3 329
19.14 高等類型 L3 333
練習 336
第20章 解析 A3 341
20.1 文法 342
20.2 組合解析器操作 343
20.3 解析器結果變換 345
20.4 丟棄詞法單元 347
20.5 生成解析樹348
20.6 避免左遞歸348
20.7 更多的組合子 350
20.8 避免回溯352
20.9 記憶式解析器 353
20.10 解析器說到底是什麼354
20.11 正則解析器 355
20.12 基於詞法單元的解析器 356
20.13 錯誤處理 358
練習 359
第21章 隱式轉換和隱式參數 L3 363
21.1 隱式轉換363
21.2 利用隱式轉換豐富現有類庫的功能 364
21.3 引入隱式轉換 365
21.4 隱式轉換規則 367
21.5 隱式參數368
21.6 利用隱式參數進行隱式轉換 370
21.7 上下文界定371
21.8 類型類 372
21.9 類型證明374
21.10 @implicitNotFound註解.376
21.11 CanBuildFrom解讀376
練習 379
辭彙表 381

相關詞條

熱門詞條

聯絡我們