注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Scala編程(第5版)

Scala編程(第5版)

Scala編程(第5版)

定 價(jià):¥188.00

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

ISBN: 9787121428326 出版時(shí)間: 2022-03-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 656 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書由直接參與 Scala 開發(fā)的一線人員編寫,深入介紹了 Scala 這門結(jié)合面向?qū)ο蠛秃瘮?shù)式的編程語(yǔ)言的核心特性和設(shè)計(jì)取舍。繼第 4 版后,時(shí)隔一年,本書迎來(lái)重大更新,內(nèi)容覆蓋 Scala 3.0,對(duì)新的縮進(jìn)語(yǔ)法、并集類型、交集類型、枚舉、代數(shù)數(shù)據(jù)類型、上下文參數(shù)、特質(zhì)參數(shù)、擴(kuò)展方法、類型族等都有詳細(xì)介紹。本書適合有一定編程經(jīng)驗(yàn)的開發(fā)者閱讀,尤其是對(duì) Scala 3.0 新特性感興趣的開發(fā)者朋友。即便是不直接使用 Scala 的讀者,也能從本書中學(xué)到大量關(guān)于函數(shù)式和面向?qū)ο蟮木幊谈拍詈图记伞?/div>

作者簡(jiǎn)介

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

圖書目錄

序 XIX
引言 XXIII
第1章 一門可伸縮的語(yǔ)言 1
1.1 一門按需伸縮的語(yǔ)言 2
1.2 是什么讓Scala能屈能伸 6
1.3 為什么要用Scala 9
1.4 Scala尋根 17
1.5 結(jié)語(yǔ) 19
第2章 Scala入門 20
第1步 使用Scala解釋器 21
第2步 定義變量 22
第3步 定義函數(shù) 25
第4步 編寫Scala腳本 27
第5步 用while做循環(huán);用if做判斷 29
第6步 用foreach方法和for-do遍歷 31
結(jié)語(yǔ) 34
第3章 Scala入門(續(xù)) 35
第7步 用類型參數(shù)化數(shù)組 35
第8步 使用列表 40
第9步 使用元組 44
第10步 使用集和映射 45
第11步 識(shí)別函數(shù)式編程風(fēng)格 50
第12步 用map方法和for-yield變換 53
結(jié)語(yǔ) 57
第4章 類和對(duì)象 58
4.1 類、字段和方法 58
4.2 分號(hào)推斷 63
4.3 單例對(duì)象 64
4.4 樣例類 67
4.5 Scala應(yīng)用程序 69
4.6 結(jié)語(yǔ) 71
第5章 基礎(chǔ)類型和操作 72
5.1 一些基礎(chǔ)類型 72
5.2 字面量 73
5.3 字符串插值 79
5.4 操作符即方法 81
5.5 算術(shù)操作 84
5.6 關(guān)系和邏輯操作 85
5.7 位運(yùn)算操作 87
5.8 對(duì)象相等性 88
5.9 操作符優(yōu)先級(jí)和結(jié)合律 90
5.10 富包裝類 93
5.11 結(jié)語(yǔ) 94
第6章 函數(shù)式對(duì)象 95
6.1 Rational類的規(guī)格定義 95
6.2 構(gòu)建Rational實(shí)例 96
6.3 重新實(shí)現(xiàn)toString方法 98
6.4 檢查前提條件 99
6.5 添加字段 100
6.6 自引用 102
6.7 輔助構(gòu)造方法 103
6.8 私有字段和方法 105
6.9 定義操作符 106
6.10 Scala中的標(biāo)識(shí)符 108
6.11 方法重載 111
6.12 擴(kuò)展方法 113
6.13 注意事項(xiàng) 114
6.14 結(jié)語(yǔ) 115
第7章 內(nèi)建的控制結(jié)構(gòu) 116
7.1 if表達(dá)式 117
7.2 while循環(huán) 118
7.3 for表達(dá)式 121
7.4 用try表達(dá)式實(shí)現(xiàn)異常處理 127
7.5 match表達(dá)式 131
7.6 沒(méi)有break和continue的日子 133
7.7 變量作用域 135
7.8 對(duì)指令式代碼進(jìn)行重構(gòu) 139
7.9 結(jié)語(yǔ) 141
第8章 函數(shù)和閉包 142
8.1 方法 142
8.2 局部函數(shù) 143
8.3 一等函數(shù) 145
8.4 函數(shù)字面量的簡(jiǎn)寫形式 147
8.5 占位符語(yǔ)法 148
8.6 部分應(yīng)用的函數(shù) 149
8.7 閉包 152
8.8 特殊的函數(shù)調(diào)用形式 154
8.9 SAM類型 158
8.10 尾遞歸 159
8.11 結(jié)語(yǔ) 163
第9章 控制抽象 164
9.1 減少代碼重復(fù) 164
9.2 簡(jiǎn)化調(diào)用方代碼 168
9.3 柯里化 170
9.4 編寫新的控制結(jié)構(gòu) 172
9.5 傳名參數(shù) 175
9.6 結(jié)語(yǔ) 178
第10章 組合和繼承 179
10.1 一個(gè)二維的布局類庫(kù) 179
10.2 抽象類 180
10.3 定義無(wú)參方法 182
10.4 擴(kuò)展類 184
10.5 重寫方法和字段 187
10.6 定義參數(shù)化字段 188
10.7 調(diào)用超類構(gòu)造方法 189
10.8 使用override修飾符 191
10.9 多態(tài)和動(dòng)態(tài)綁定 192
10.10 聲明final成員 195
10.11 使用組合和繼承 196
10.12 實(shí)現(xiàn)above、beside和toString方法 198
10.13 定義工廠對(duì)象 201
10.14 增高和增寬 204
10.15 放在一起 205
10.16 結(jié)語(yǔ) 207
第11章 特質(zhì) 208
11.1 特質(zhì)如何工作 208
11.2 瘦接口和富接口 211
11.3 作為可疊加修改的特質(zhì) 214
11.4 為什么不用多重繼承 218
11.5 特質(zhì)參數(shù) 223
11.6 結(jié)語(yǔ) 225
第12章 包、引入和導(dǎo)出 227
12.1 將代碼放進(jìn)包里 227
12.2 對(duì)相關(guān)代碼的精簡(jiǎn)訪問(wèn) 229
12.3 引入 232
12.4 隱式引入 236
12.5 訪問(wèn)修飾符 237
12.6 頂層定義 242
12.7 導(dǎo)出 243
12.8 結(jié)語(yǔ) 247
第13章 樣例類和模式匹配 248
13.1 一個(gè)簡(jiǎn)單的例子 248
13.2 模式的種類 253
13.3 模式守衛(wèi) 264
13.4 模式重疊 265
13.5 密封類 267
13.6 對(duì)Option進(jìn)行模式匹配 269
13.7 到處都是模式 271
13.8 一個(gè)復(fù)雜的例子 276
13.9 結(jié)語(yǔ) 284
第14章 使用列表 285
14.1 List字面量 285
14.2 List類型 286
14.3 構(gòu)建列表 287
14.4 列表的基本操作 287
14.5 列表模式 289
14.6 List類的初階方法 291
14.7 List類的高階方法 303
14.8 List對(duì)象的方法 311
14.9 同時(shí)處理多個(gè)列表 313
14.10 理解Scala的類型推斷算法 315
14.11 結(jié)語(yǔ) 319
第15章 使用其他集合類 320
15.1 序列 320
15.2 集和映射 324
15.3 在可變和不可變集合之間選擇 331
15.4 初始化集合 334
15.5 元組 337
15.6 結(jié)語(yǔ) 340
第16章 可變對(duì)象 341
16.1 什么樣的對(duì)象是可變的 341
16.2 可被重新賦值的變量和屬性 344
16.3 案例分析:離散事件模擬 347
16.4 用于描述數(shù)字電路的語(yǔ)言 348
16.5 模擬API 351
16.6 電路模擬 356
16.7 結(jié)語(yǔ) 363
第17章 Scala的繼承關(guān)系 365
17.1 Scala的類繼承關(guān)系 365
17.2 基本類型的實(shí)現(xiàn)機(jī)制 369
17.3 底類型 371
17.4 定義自己的值類型 372
17.5 交集類型 376
17.6 并集類型 377
17.7 透明特質(zhì) 380
17.8 結(jié)語(yǔ) 382
第18章 類型參數(shù)化 383
18.1 函數(shù)式隊(duì)列 383
18.2 信息隱藏 387
18.3 型變注解 390
18.4 檢查型變注解 396
18.5 下界 399
18.6 逆變 401
18.7 上界 404
18.8 結(jié)語(yǔ) 407
第19章 枚舉 408
19.1 枚舉數(shù)據(jù)類型 408
19.2 代數(shù)數(shù)據(jù)類型 413
19.3 泛化代數(shù)數(shù)據(jù)類型 415
19.4 為什么說(shuō)ADT是代數(shù)數(shù)據(jù)類型 416
19.5 結(jié)語(yǔ) 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 結(jié)語(yǔ) 450
第21章 上下文參數(shù) 451
21.1 上下文參數(shù)的工作原理 452
21.2 參數(shù)化的上下文參數(shù)類型 456
21.3 匿名上下文參數(shù) 461
21.4 作為類型族的參數(shù)化上下文參數(shù) 463
21.5 上下文參數(shù)的引入 466
21.6 上下文參數(shù)的規(guī)則 468
21.7 當(dāng)有多個(gè)上下文參數(shù)可選時(shí) 471
21.8 調(diào)試上下文參數(shù) 473
21.9 結(jié)語(yǔ) 475
第22章 擴(kuò)展方法 476
22.1 擴(kuò)展方法的基礎(chǔ) 476
22.2 泛化的擴(kuò)展方法 479
22.3 成組的擴(kuò)展方法 481
22.4 使用類型族 484
22.5 針對(duì)上下文參數(shù)的擴(kuò)展方法 486
22.6 Scala如何查找擴(kuò)展方法 491
22.7 結(jié)語(yǔ) 492
第23章 類型族 493
23.1 為什么要用類型族 493
23.2 上下文界定 499
23.3 主方法 502
23.4 跨界相等性 506
23.5 隱式轉(zhuǎn)換 512
23.6 類型族案例分析:JSON序列化 515
23.7 結(jié)語(yǔ) 526
第24章 深入集合類 527
24.1 可變和不可變集合 528
24.2 集合的一致性 530
24.3 Iterable特質(zhì) 532
24.4 序列型特質(zhì)Seq、IndexedSeq和LinearSeq 539
24.5 集 544
24.6 映射 548
24.7 具體的不可變集合類 553
24.8 具體的可變集合類 560
24.9 數(shù)組 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集合互轉(zhuǎn) 587
24.17 結(jié)語(yǔ) 589
第25章 斷言和測(cè)試 590
25.1 斷言 590
25.2 用Scala寫測(cè)試 592
25.3 翔實(shí)的失敗報(bào)告 594
25.4 作為規(guī)格說(shuō)明的測(cè)試 596
25.5 基于屬性的測(cè)試 599
25.6 組織和運(yùn)行測(cè)試 601
25.7 結(jié)語(yǔ) 603
術(shù)語(yǔ)表 604
關(guān)于作者 627
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)