注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計Scala編程(第5版)

Scala編程(第5版)

Scala編程(第5版)

定 價:¥188.00

作 者: [德] Martin Odersky,[美] Lex Spoon 等 著,高宇翔 譯
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787121428326 出版時間: 2022-03-01 包裝: 平裝
開本: 16開 頁數: 656 字數:  

內容簡介

  本書由直接參與 Scala 開發(fā)的一線人員編寫,深入介紹了 Scala 這門結合面向對象和函數式的編程語言的核心特性和設計取舍。繼第 4 版后,時隔一年,本書迎來重大更新,內容覆蓋 Scala 3.0,對新的縮進語法、并集類型、交集類型、枚舉、代數數據類型、上下文參數、特質參數、擴展方法、類型族等都有詳細介紹。本書適合有一定編程經驗的開發(fā)者閱讀,尤其是對 Scala 3.0 新特性感興趣的開發(fā)者朋友。即便是不直接使用 Scala 的讀者,也能從本書中學到大量關于函數式和面向對象的編程概念和技巧。

作者簡介

  Martin Odersky 是 Scala 編程語言的締造者。他是瑞士洛桑理工學院(EPFL)的教授,同時也是 Lightbend 的創(chuàng)始人。他的研究方向是編程語言和系統(tǒng),更具體地說,就是如何將面向對象和函數式編程風格有機地結合在一起。自 2001 年起,他的主要精力集中在設計、實現和改進 Scala 上。在此之前,他作為 Java 泛型的合作設計者參與了 Java 編程語言的開發(fā),同時也是當前 javac 參考實現的作者。他還是 ACM 院士。 Lex Spoon 是 Semmle Ltd. 的一名軟件工程師。作為博士后,他在 EPFL圍繞著 Scala 開展了大約兩年的工作。他擁有 Georgia Tech 的博士學位,在那里他的主攻方向是動態(tài)編程語言的靜態(tài)分析。除 Scala 外,他還幫助開發(fā)了各類編程語言,包括動態(tài)語言 Smalltalk、科學計算語言 X10,以及支撐 Semmle的邏輯編程語言。他和他的夫人一起生活在 Atlanta,他們有兩只貓和一只吉娃娃。 Bill Venners 是 Artima Inc.的總裁,Artima 開發(fā)者網站的發(fā)行人,提供Scala 咨詢、培訓、書籍和工具。他著有《深入 Java 虛擬機》,這是一本面向程序員講解 Java 平臺架構和內部實現原理的書。他在 JavaWorld 雜志上的專欄很受歡迎,主題涵蓋 Java 內部實現、面向對象的設計和 Jini。Bill 是 ScalaCenter 咨詢委員會的社區(qū)代表,還是測試框架 ScalaTest 和針對函數式、面向對象編程類庫 Scalactic 的主要開發(fā)者和設計者。 Frank Sommers 是 Autospaces Inc.的創(chuàng)始人和總裁,該公司為金融服務行業(yè)提供自動化的工作流解決方案。在過去的 12 年間,Frank Sommers 一直是活躍的 Scala 用戶,幾乎每天都在使用這門編程語言。 譯者:高宇翔,資深軟件開發(fā)工程師和系統(tǒng)架構師,同時也是Scala在國內的早期布道者和實踐者,曾譯有《Scala編程》(第1版)、《Scala編程》(第3版)、《Scala編程》(第4版),以及《快學Scala》(第1版)、《快學Scala》(第2版)等廣為人知的Scala語言技術名著。中文版審校者:鐘倫甫,Scala愛好者和早期布道者。2012年在淘寶中間件團隊任職技術專家期間,用Scala編寫過一款名為HouseMD 的JVM診斷工具并開源。后又作為聯(lián)合譯者,參與了《Scala函數式編程》一書的翻譯;黃勝濤,有10年以上系統(tǒng)運維和8年以上軟件開發(fā)經驗,曾就職于攜程旅行網、LOTTE,目前在上海昱極科技有限公司從事DevOps方面工作。

圖書目錄

序 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做循環(huán);用if做判斷 29
第6步 用foreach方法和for-do遍歷 31
結語 34
第3章 Scala入門(續(xù)) 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 操作符優(yōu)先級和結合律 90
5.10 富包裝類 93
5.11 結語 94
第6章 函數式對象 95
6.1 Rational類的規(guī)格定義 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循環(huán) 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 多態(tài)和動態(tài)綁定 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 模式守衛(wèi) 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 上下文參數的規(guī)則 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 從頭創(chuàng)建集合 585
24.16 Java和Scala集合互轉 587
24.17 結語 589
第25章 斷言和測試 590
25.1 斷言 590
25.2 用Scala寫測試 592
25.3 翔實的失敗報告 594
25.4 作為規(guī)格說明的測試 596
25.5 基于屬性的測試 599
25.6 組織和運行測試 601
25.7 結語 603
術語表 604
關于作者 627

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號