Scala速學版(第3版)

凱·S. 霍斯特曼(Cay S. Horstmann)

  • 出版商: 人民郵電
  • 出版日期: 2024-08-01
  • 定價: $539
  • 售價: 8.5$458
  • 語言: 簡體中文
  • 頁數: 252
  • 裝訂: 平裝
  • ISBN: 7115647623
  • ISBN-13: 9787115647627
  • 相關分類: JVM 語言
  • 下單後立即進貨 (約4週~6週)

  • Scala速學版(第3版)-preview-1
  • Scala速學版(第3版)-preview-2
Scala速學版(第3版)-preview-1

商品描述

本書是一本系統地介紹Scala語言的入門圖書,針對Scala 3進行了全面的更新,不僅覆蓋了Scala語言的基礎知識,而且涵蓋了許多更復雜的概念,並最終深入到非常高級的內容。

本書共分20章,首先介紹了Scala語言的基礎概念,以及控制結構和函數、數組操作、映射、Option、元組、類、對象和枚舉、包、導入和導出、繼承、文件和正則表達式等關鍵概念;其次介紹了特質、運算符、高階函數、容器、模式匹配、註解、Future、類型參數、高級類型、上下文抽象和類型級編程等高級內容。每章都標記了一個級別標簽,告訴你本章的難易程度,以及它是面向應用程序員還是庫設計者。本書以緊湊的形式呈現內容,提供了許多實用的示例代碼,還給出了基於作者實際經驗的提示、註意和警告。

本書適合有一定編程經驗、對Scala感興趣,並希望盡快掌握Scala核心概念和用法的開發者閱讀。

作者簡介

凯·S. 霍斯特曼(Cay S. Horstmann)是《Java核心技术速学版(第3版)》(Core Java for the Impatient, Third Edition)的作者,也是 Core Java, Volumes I and II, Twelfth Edition 的主要作者,他还为专业编程人员和计算机科学专业的学生撰写了十多本书。他是美国圣何塞州立大学计算机科学专业的荣誉退休教授,也是一名Java Champion。

目錄大綱

第 1 章 基礎 A1 ................................. 1

1.1 Scala 解釋器 .................................... 1

1.2 聲明值和變量 ..................................... 3

1.3 常用類型 ........................................... 4

1.4 算術和運算符重載 ............................... 5

1.5 關於調用方法的更多內容 ...................... 6

1.6 apply 方法 ....................................... 7

1.7 Scaladoc ........................................ 8

練習 ....................................................... 11

第 2 章 控制結構和函數 A1 ................ 12

2.1 條件表達式 ...................................... 12

2.2 語句終止 ........................................ 14

2.3 塊表達式和賦值 ............................... 15

2.4 輸入和輸出 ..................................... 16

2.5 循環 .............................................. 17

2.6 關於 for 循環的更多內容 ................... 19

2.7 函數 .............................................. 20

2.8 默認參數和命名參數 L1 ...................... 21

2.9 可變參數 L1 ..................................... 22

2.10 主函數 .......................................... 23

2.11 無參函數 ....................................... 23

2.12 惰性求值 L1 ................................... 24

2.13 異常 ............................................. 25

練習 ...................................................... 27

第 3 章 數組操作 A1 ......................... 29

3.1 定長數組......................................... 29

3.2 變長數組:數組緩沖區 ...................... 30

3.3 遍歷數組和數組緩沖區 ...................... 31

3.4 轉換數組 ........................................ 31

3.5 常用算法 ........................................ 33

3.6 解讀 Scaladoc ............................... 34

3.7 多維數組 ........................................ 35

3.8 與 Java 的互操作 ............................ 35

練習 ...................................................... 36

第 4 章 映射、Option 和元組 A1 ....... 38

4.1 構造映射......................................... 38

4.2 訪問映射值 ..................................... 39

4.3 更新映射值 ..................................... 39

4.4 遍歷映射 ........................................ 40

4.5 鏈接和排序映射 ............................... 41

4.6 與 Java 的互操作 ............................ 41

4.7 Option 類型 ................................... 42

4.8 元組 .............................................. 43

4.9 拉鏈操作 ........................................ 44

練習 ...................................................... 44

第 5 章 類 A1 ................................. 46

5.1 簡單類和無參方法 ............................. 46

5.2 帶 getter 和 setter 的屬性 ................ 47

5.3 僅帶 getter 的屬性 .......................... 49

5.4 私有字段 ........................................ 50

5.5 輔助構造函數 .................................. 51

5.6 主構造函數 ..................................... 52

5.7 嵌套類 L1 ........................................ 54

練習 ...................................................... 55

第 6 章 對象和枚舉 A1 ...................... 57

6.1 單例............................................... 57

6.2 伴生對象 ........................................ 58

6.3 擴展類或特質的對象 ......................... 58

6.4 apply 方法 .................................... 59

6.5 應用程序對象 .................................. 60

6.6 枚舉 .............................................. 60

練習 ...................................................... 62

第 7 章 包、導入和導出 A1 ................ 63

7.1 包.................................................. 63

7.2 包作用域嵌套 .................................. 64

7.3 鏈式包子句 ..................................... 65

7.4 文件頂部表示法 ............................... 65

7.5 包級函數和變量 ............................... 66

7.6 包可見性 ........................................ 66

7.7 導入 .............................................. 67

7.8 導入無處不在 .................................. 67

7.9 重命名和隱藏成員 ............................ 68

7.10 隱式導入 ....................................... 68

7.11 導出 ............................................. 69

練習 ...................................................... 69

第 8 章 繼承 A1 ............................... 71

8.1 繼承類............................................ 71

8.2 重寫方法 ........................................ 72

8.3 類型檢查和強制轉換 ......................... 72

8.4 超類的構造 ..................................... 73

8.5 匿名子類 ........................................ 74

8.6 抽象類 ........................................... 74

8.7 抽象字段 ........................................ 75

8.8 重寫字段 ........................................ 75

8.9 開放類和密封類 ............................... 76

8.10 受保護的字段和方法 ........................ 77

8.11 構造順序 ....................................... 77

8.12 Scala 繼承層級結構 ....................... 78

8.13 對象相等性 L1 ................................ 80

8.14 多元相等性 L2 ................................ 81

8.15 值類 L2 ......................................... 82

練習 ...................................................... 83

第 9 章 文件和正則表達式 A1............. 85

9.1 讀取行............................................ 85

9.2 讀取字符 ........................................ 86

9.3 讀取詞法單元和數字 ......................... 86

9.4 從 URL 和其他源讀取 ....................... 87

9.5 寫入文件 ........................................ 87

9.6 訪問目錄 ........................................ 88

9.7 序列化 ........................................... 88

9.8 進程控制 A2 .................................... 89

9.9 正則表達式 ..................................... 90

9.10 正則表達式組 ................................. 92

練習 ...................................................... 93

第 10 章 特質 L1 ............................. 94

10.1 為何沒有多重繼承? ........................ 94

10.2 作為接口的特質 .............................. 95

10.3 帶具體方法的特質 ........................... 96

10.4 富接口的特質 ................................. 97

10.5 具有特質的對象 .............................. 97

10.6 分層特質....................................... 98

10.7 重寫特質中的抽象方法 ..................... 99

10.8 特質中的具體字段 ........................... 99

10.9 特質中的抽象字段 ......................... 100

10.10 特質構造順序 .............................. 101

10.11 帶參數的特質構造函數 .................. 102

10.12 擴展類的特質 ............................. 103

10.13 底層機制 ................................... 104

10.14 透明特質 L2 ............................... 105

10.15 自類型 L2 .................................. 106

練習 .................................................... 107

第 11 章 運算符 L1 .......................... 110

11.1 標識符 ......................................... 110

11.2 中綴運算符 ................................... 111

11.3 一元運算符 ................................... 112

11.4 賦值運算符 ................................... 113

11.5 優先級 ......................................... 113

11.6 關聯性 ......................................... 114

11.7 apply 和 update 方法 ................... 114

11.8 unapply 方法 L2 ........................... 114

11.9 unapplySeq 方法 L2 ...................... 116

11.10 unapply 和 unapplySeq 方法的替代形式 L3 ........... 116

11.11 動態調用 L2 ................................. 117

11.12 類型安全的選擇和應用 L2 ............... 119

練習 ..................................................... 121

第 12 章 高階函數 L1...................... 123

12.1 函數作為值 .................................. 123

12.2 匿名函數 ..................................... 124

12.3 函數參數 ..................................... 125

12.4 參數推斷 ..................................... 126

12.5 有用的高階函數 ............................ 126

12.6 閉包 ........................................... 127

12.7 與 Lambda 表達式的互操作性 ........ 128

12.8 柯里化 ........................................ 129

12.9 組合、柯里化和元組化的方法 .......... 129

12.10 控制抽象 ................................... 130

12.11 非本地返回 .................................. 131

練習 .................................................... 132

第 13 章 容器 A2 ........................... 134

13.1 主要的容器特質 ............................ 134

13.2 可變和不可變容器 ......................... 136

13.3 序列 ........................................... 136

13.4 列表........................................... 137

13.5 集合 ........................................... 138

13.6 添加或刪除元素的運算符 ................ 139

13.7 常用方法 ...................................... 141

13.8 映射函數..................................... 143

13.9 歸約、折疊和掃描 A3 ..................... 144

13.10 拉鏈操作 ................................... 146

13.11 迭代器 ...................................... 147

13.12 惰性列表 A3 ............................... 148

13.13 與 Java 容器的互操作性 .............. 150

練習 ..................................................... 151

第 14 章 模式匹配 A2 ...................... 153

14.1 更好的 switch............................. 153

14.2 守衛........................................... 154

14.3 模式中的變量 ............................... 154

14.4 類型模式..................................... 155

14.5 Matchable 特質 .......................... 156

14.6 匹配數組、列表和元組 ................... 157

14.7 提取器........................................ 158

14.8 變量聲明中的模式 ......................... 159

14.9 for 表達式中的模式 ...................... 160

14.10 樣例類 ....................................... 161

14.11 匹配嵌套結構.............................. 162

14.12 密封類 ...................................... 163

14.13 參數化枚舉 ................................ 164

14.14 偏函數 A3 .................................. 165

14.15 case 子句中的中綴表示法 L2 ......... 166

練習 .................................................... 167

第 15 章 註解 A2............................ 169

15.1 什麽是註解? ............................... 169

15.2 註解放置 ..................................... 170

15.3 註解參數 ..................................... 170

15.4 Java 特性的註解 .......................... 171

15.4.1 Bean 屬性............................. 171

15.4.2 序列化 .................................. 172

15.4.3 受檢異常 ............................... 172

15.4.4 可變參數 ............................... 172

15.4.5 Java 修飾符 ......................... 173

15.5 優化註解 ..................................... 173

15.5.1 尾遞歸 ................................... 173

15.5.2 惰性值 .................................. 174

15.6 錯誤和警告註解 ............................ 175

15.7 註解聲明 ..................................... 176

練習 .................................................... 177

第 16 章 Future A2 ...................... 179

16.1 在 Future 中運行任務 ................... 179

16.2 等待結果 ...................................... 181

16.3 Try 類 ....................................... 182

16.4 回調........................................... 183

16.5 組合 Future 任務 ......................... 183

16.6 其他 Future 轉換 ......................... 185

16.7 Future 對象的方法 ....................... 187

16.8 Promise ................................... 188

16.9 執行上下文 .................................. 189

練習 .................................................... 190

第 17 章 類型參數 L2 ..................... 192

17.1 泛型類 ........................................ 192

17.2 泛型函數 ..................................... 193

17.3 類型變量的邊界 ............................ 193

17.4 上下文邊界 .................................. 194

17.5 ClassTag 上下文邊界 ................... 195

17.6 多重邊界 ..................................... 195

17.7 類型約束 L3 ................................. 195

17.8 型變........................................... 196

17.9 協變和逆變位置 ............................ 197

17.10 對象不能是泛型 .......................... 199

17.11 通配符....................................... 199

17.12 多態函數 ................................... 200

練習 .................................................... 201

第 18 章 高級類型 L2 ..................... 203

18.1 聯合類型 ..................................... 203

18.2 相交類型 ..................................... 204

18.3 類型別名 ..................................... 205

18.4 結構類型..................................... 206

18.5 字面量類型 .................................. 207

18.6 單例類型操作符 ............................ 208

18.7 抽象類型..................................... 210

18.8 依賴類型...................................... 211

18.9 抽象類型邊界 ............................... 212

練習 .................................................... 213

第 19 章 上下文抽象 L3 ................... 216

19.1 上下文參數 .................................. 216

19.2 上下文參數的更多內容 ................... 217

19.3 聲明 given 實例 .......................... 219

19.4 for 和 match 表達式中的 given..... 221

19.5 導入 given ................................. 221

19.6 擴展方法..................................... 222

19.7 擴展方法的查找位置 ...................... 223

19.8 隱式轉換..................................... 225

19.9 隱式轉換規則 ............................... 226

19.10 導入隱式轉換 ............................. 227

19.11 上下文函數 ................................ 227

19.12 證據 ......................................... 229

19.13 @implicitNotFound 註解 .......... 230

練習 .................................................... 231

第 20 章 類型級編程 L3 ................. 233

20.1 匹配類型 ..................................... 233

20.2 異構列表 .................................... 234

20.3 字面量類型算術運算 ..................... 236

20.4 內聯代碼 .................................... 238

20.5 類型類 ....................................... 240

20.6 鏡像 .......................................... 242

20.7 類型類派生 ................................. 244

20.8 高級類型 .................................... 245

20.9 類型 Lambda 表達式 ................... 247

20.10 宏簡介...................................... 248

練習 .................................................... 251