Scala程序設(shè)計(jì)(第2版)是一本Scala程序設(shè)計(jì)書籍,由大數(shù)據(jù)產(chǎn)品架構(gòu)師萬普勒和佩恩兩人共同編著,王淵,陳明共同翻譯。本書通過大量的代碼示例,全面介紹Scala這門針對JVM的編程語言,向讀者展示了如何高效地利用Scala語言及其生態(tài)系統(tǒng),同時(shí)解釋了為何Scala是開發(fā)高擴(kuò)展性、以數(shù)據(jù)為中心的應(yīng)用程序的理想語言,能夠適合Scala初學(xué)者入門,也適合經(jīng)驗(yàn)豐富的Scala開發(fā)者參考。
內(nèi)容介紹
Scala程序設(shè)計(jì)(第2版)全面介紹Scala這門針對JVM的編程語言,它集成了現(xiàn)代對象模型、函數(shù)式編程和先進(jìn)類型系統(tǒng)的所有優(yōu)勢。通過大量的代碼示例,本書向讀者展示了如何高效地利用Scala語言及其生態(tài)系統(tǒng),同時(shí)解釋了為何Scala是開發(fā)高擴(kuò)展性、以數(shù)據(jù)為中心的應(yīng)用程序的理想語言。Scala程序設(shè)計(jì)(第2版)還介紹了Scala的新特性,新增了模式匹配和高級函數(shù)式編程的章節(jié)。此外,讀者還可以學(xué)到Scala的命令行工具、第三方工具、庫等。
章節(jié)目錄
序 xv 前言 xvii 第 1 章 零到六十:Scala 簡介 1 1.1 為什么選擇Scala 1 1.1.1 富有魅力的Scala 2 1.1.2 關(guān)于Java 8 3 1.2 安裝Scala 3 1.2.1 使用SBT 5 1.2.2 執(zhí)行Scala 命令行工具 6 1.2.3 在IDE中運(yùn)行Scala REPL 8 1.3 使用Scala 8 1.4 并發(fā) 17 1.5 本章回顧與下一章提要 27 第 2 章 更簡潔,更強(qiáng)大 28 2.1 分號 28 2.2 變量聲明 29 2.3 Range 31 2.4 偏函數(shù) 32 2.5 方法聲明 33 2.5.1 方法默認(rèn)值和命名參數(shù)列表 33 2.5.2 方法具有多個(gè)參數(shù)列表 34 2.5.3 Future 簡介 35 2.5.4 嵌套方法的定義與遞歸 38 2.6 推斷類型信息 40 2.7 保留字 44 2.8 字面量 46 2.8.1 整數(shù)字面量 46 2.8.2 浮點(diǎn)數(shù)字面量 47 2.8.3 布爾型字面量 48 2.8.4 字符字面量 48 2.8.5 字符串字面量 48 2.8.6 符號字面量 50 2.8.7 函數(shù)字面量 50 2.8.8 元組字面量 50 2.9 Option、Some和None:避免使用null 52 2.10 封閉類的繼承 53 2.11 用文件和名空間組織代碼 54 2.12 導(dǎo)入類型及其成員 55 2.12.1 導(dǎo)入是相對的 56 2.12.2 包對象 57 2.13 抽象類型與參數(shù)化類型 57 2.14 本章回顧與下一章提要 59 第 3 章 要點(diǎn)詳解 60 3.1 操作符重載 ? 60 3.2 無參數(shù)方法 63 3.3 優(yōu)先級規(guī)則 64 3.4 領(lǐng)域特定語言 65 3.5 Scala中的if語句 66 3.6 Scala中的for推導(dǎo)式 67 3.6.1 for循環(huán) 67 3.6.2 生成器表達(dá)式 67 3.6.3 保護(hù)式:篩選元素 67 3.6.4 Yielding 68 3.6.5 擴(kuò)展作用域與值定義 69 3.7 其他循環(huán)結(jié)構(gòu) 70 3.7.1 Scala的while循環(huán) 71 3.7.2 Scala中的do-while循環(huán) 71 3.8 條件操作符 71 3.9 使用try、catch和final子句 72 3.10 名字調(diào)用和值調(diào)用 75 3.11 惰性賦值 78 3.12 枚舉 79 3.13 可插入字符串 81 3.14 Trait:Scala語言的接口和“混入” 83 3.15 本章回顧與下一章提要 85 第 4 章 模式匹配 86 4.1 簡單匹配 86 4.2 match中的值、變量和類型 87 4.3 序列的匹配 90 4.4 元組的匹配 94 4.5 case中的guard語句 94 4.6 case類的匹配 95 4.6.1 unapply方法 96 4.6.2 unapplySeq方法 100 4.7 可變參數(shù)列表的匹配 101 4.8 正則表達(dá)式的匹配 103 4.9 再談case語句的變量綁定 104 4.10 再談?lì)愋推ヅ?104 4.11 封閉繼承層級與全覆蓋匹配 105 4.12 模式匹配的其他用法 107 4.13 總結(jié)關(guān)于模式匹配的評價(jià) 111 4.14 本章回顧與下一章提要 111 第 5 章 隱式詳解 112 5.1 隱式參數(shù) 112 5.2 隱式參數(shù)適用的場景 115 5.2.1 執(zhí)行上下文 115 5.2.2 功能控制 115 5.2.3 限定可用實(shí)例 116 5.2.4 隱式證據(jù) 120 5.2.5 繞開類型擦除帶來的限制 122 5.2.6 改善報(bào)錯(cuò)信息 124 5.2.7 虛類型 124 5.2.8 隱式參數(shù)遵循的規(guī)則 127 5.3 隱式轉(zhuǎn)換 128 5.3.1 構(gòu)建獨(dú)有的字符串插入器 132 5.3.2 表達(dá)式問題 134 5.4 類型類模式 135 5.5 隱式所導(dǎo)致的技術(shù)問題 137 5.6 隱式解析規(guī)則 139 5.7 Scala內(nèi)置的各種隱式 139 5.8 合理使用隱式 146 5.9 本章回顧與下一章提要 146 第 6 章 Scala函數(shù)式編程 147 6.1 什么是函數(shù)式編程 148 6.1.1 數(shù)學(xué)中的函數(shù) 148 6.1.2 不可變變量 149 6.2 Scala中的函數(shù)式編程 151 6.2.1 匿名函數(shù)、Lambda與閉包 152 6.2.2 內(nèi)部與外部的純粹性 154 6.3 遞歸 154 6.4 尾部調(diào)用和尾部調(diào)用優(yōu)化 155 6.5 偏應(yīng)用函數(shù)與偏函數(shù) 157 6.6 Curry化與函數(shù)的其他轉(zhuǎn)換 158 6.7 函數(shù)式編程的數(shù)據(jù)結(jié)構(gòu) 162 6.7.1 序列 162 6.7.2 映射表 166 6.7.3 集合 168 6.8 遍歷、映射、過濾、折疊與歸約 168 6.8.1 遍歷 169 6.8.2 映射 170 6.8.3 扁平映射 172 6.8.4 過濾 173 6.8.5 折疊與歸約 174 6.9 向左遍歷與向右遍歷 178 6.10 組合器:軟件最佳組件抽象 183 6.11 關(guān)于復(fù)制 186 6.12 本章回顧與下一章提要 188 第 7 章 深入學(xué)習(xí)for推導(dǎo)式 189 7.1 內(nèi)容回顧:for推導(dǎo)式組成元素 189 7.2 for推導(dǎo)式:內(nèi)部機(jī)制 192 7.3 for推導(dǎo)式的轉(zhuǎn)化規(guī)則 194 7.4 Option以及其他的一些容器類型 197 7.4.1 Option容器 197 7.4.2 Either:Option類型的邏輯擴(kuò)展 200 7.4.3 Try類型 205 7.4.4 Scalaz提供的Validation類 206 7.5 本章回顧與下一章提要 209 第 8 章 Scala面向?qū)ο缶幊?210 8.1 類與對象初步 211 8.2 引用與值類型 213 8.3 價(jià)值類 214 8.4 父類 217 8.5 Scala的構(gòu)造器 217 8.6 類的字段 221 8.6.1 統(tǒng)一訪問原則 223 8.6.2 一元方法 224 8.7 驗(yàn)證輸入 224 8.8 調(diào)用父類構(gòu)造器(與良好的面向?qū)ο笤O(shè)計(jì)) 226 8.9 嵌套類型 230 8.10 本章回顧與下一章提要 232 第 9 章 特征 233 9.1 Java 8中的接口 233 9.2 混入trait 234 9.3 可堆疊的特征 238 9.4 構(gòu)造trait 243 9.5 選擇類還是trait 244 9.6 本章回顧與下一章提要 245 第 10 章 Scala對象系統(tǒng)(I) 246 10.1 參數(shù)化類型:繼承轉(zhuǎn)化 246 10.1.1 Hood下的函數(shù) 247 10.1.2 可變類型的變異 250 10.1.3 Scala和Java中的變異 252 10.2 Scala的類型層次結(jié)構(gòu) 253 10.3 閑話Nothing(以及Null) 254 10.4 Product、case類和元組 258 10.5 Predef對象 260 10.5.1 隱式轉(zhuǎn)換 260 10.5.2 類型定義 262 10.5.3 條件檢查方法 263 10.5.4 輸入輸出方法 263 10.5.5 雜項(xiàng)方法 265 10.6 對象的相等 265 10.6.1 equals方法 266 10.6.2 ==和!=方法 266 10.6.3 eq和ne方法 267 10.6.4 數(shù)組相等和sameElements方法 267 10.7 本章回顧與下一章提要 268 第 11 章 Scala對象系統(tǒng)(II) 269 11.1 覆寫類成員和trait成員 269 11.2 嘗試覆寫final聲明 272 11.3 覆寫抽象方法和具體方法 272 11.4 覆寫抽象字段和具體字段 274 11.5 覆寫抽象類型 280 11.6 無須區(qū)分訪問方法和字段:統(tǒng)一訪問原則 280 11.7 對象層次結(jié)構(gòu)的線性化算法 282 11.8 本章回顧與下一章提要 287 第 12 章 Scala集合庫 288 12.1 通用、可變、不可變、并發(fā)以及并行集合 288 12.1.1 scala.collection包 289 12.1.2 collection.concurrent包 290 12.1.3 collection.convert包 291 12.1.4 collection.generic包 291 12.1.5 collection.immutable包 291 12.1.6 scala.collection.mutable包 292 12.1.7 scala.collection.parallel包 294 12.2 選擇集合 295 12.3 集合庫的設(shè)計(jì)慣例 296 12.3.1 Builder 296 12.3.2 CanBuildFrom 297 12.3.3 Like特征 298 12.4 值類型的特化 298 12.5 本章回顧與下一章提要 300 第 13 章 可見性規(guī)則 301 13.1 默認(rèn)可見性:公有可見性 301 13.2 可見性關(guān)鍵字 302 13.3 Public可見性 303 13.4 Protected可見性 304 13.5 Private可見性 305 13.6 作用域內(nèi)私有和作用域內(nèi)受保護(hù)可見性 306 13.7 對可見性的想法 312 13.8 本章回顧與下一章提要 313 第 14 章 Scala類型系統(tǒng)(I) 314 14.1 參數(shù)化類型 315 14.1.1 變異標(biāo)記 315 14.1.2 類型構(gòu)造器 315 14.1.3 類型參數(shù)的名稱 315 14.2 類型邊界 315 14.2.1 類型邊界上限 316 14.2.2 類型邊界下限 316 14.3 上下文邊界 320 14.4 視圖邊界 320 14.5 理解抽象類型 322 14.6 自類型標(biāo)記 325 14.7 結(jié)構(gòu)化類型 329 14.8 復(fù)合類型 332 14.9 存在類型 334 14.10 本章回顧與下一章提要 335 第 15 章 Scala 類型系統(tǒng)(II) 336 15.1 路徑相關(guān)類型 336 15.1.1 C.this 337 15.1.2 C.super 337 15.1.3 path.x 338 15.2 依賴方法類型 339 15.3 類型投影 340 15.4 值的類型 343 15.4.1 元組類型 343 15.4.2 函數(shù)類型 343 15.4.3 中綴類型 343 15.5 Higher-Kinded類型 344 15.6 類型Lambda 348 15.7 自遞歸類型:F-Bounded 多態(tài) 350 15.8 本章回顧與下一章提要 351 第 16 章 高級函數(shù)式編程 352 16.1 代數(shù)數(shù)據(jù)類型 352 16.1.1 加法類型與乘法類型 352 16.1.2 代數(shù)數(shù)據(jù)類型的屬性 354 16.1.3 代數(shù)數(shù)據(jù)類型的最后思考 355 16.2 范疇理論 355 16.2.1 關(guān)于范疇 356 16.2.2 Functor范疇 356 16.2.3 Monad范疇 360 16.2.4 Monad的重要性 362 16.3 本章回顧與下一章提要 363 第 17 章 并發(fā)工具 365 17.1 scala.sys.process包 365 17.2 Future類型 367 17.3 利用Actor模型構(gòu)造穩(wěn)固且可擴(kuò)展的并發(fā)應(yīng)用 371 17.4 Akka:為Scala設(shè)計(jì)的Actor系統(tǒng) 372 17.5 Pickling和Spores 383 17.6 反應(yīng)式編程 384 17.7 本章回顧與下一章提要 385 第 18 章 Scala與大數(shù)據(jù) 386 18.1 大數(shù)據(jù)簡史 386 18.2 用Scala改善MapReduce 387 18.3 超越MapReduce 392 18.4 數(shù)學(xué)范疇 393 18.5 Scala數(shù)據(jù)工具列表 394 18.6 本章回顧與下一章提要 394 第 19 章 Scala動(dòng)態(tài)調(diào)用 396 19.1 一個(gè)較為激進(jìn)的示例:Ruby on Rails框架中的ActiveRecord庫 396 19.2 使用動(dòng)態(tài)特征實(shí)現(xiàn)Scala中的動(dòng)態(tài)調(diào)用 397 19.3 關(guān)于DSL的一些思考 402 19.4 本章回顧與下一章提要 402 第 20 章 Scala的領(lǐng)域特定語言 403 20.1 DSL 示例:Scala中XML和JSON DSL 404 20.2 內(nèi)部DSL 406 20.3 包含解析組合子的外部DSL 410 20.3.1 關(guān)于解析組合子 410 20.3.2 計(jì)算工資單的外部DSL 410 20.4 內(nèi)部DSL與外部DSL:最后的思考 413 20.5 本章回顧與下一章提要 413 第 21 章 Scala工具和庫 414 21.1 命令行工具 414 21.1.1 命令行工具:scalac 414 21.1.2 Scala命令行工具 418 21.1.3 scalap和javap命令行工具 421 21.1.4 scaladoc命令行工具 422 21.1.5 fsc命令行工具 422 21.2 構(gòu)建工具 422 21.2.1 SBT:Scala標(biāo)準(zhǔn)構(gòu)建工具 423 21.2.2 其他構(gòu)建工具 425 21.3 與IDE或文本編輯器集成 425 21.4 在Scala中應(yīng)用測試驅(qū)動(dòng)開發(fā) 426 21.5 第三方庫 427 21.6 本章回顧與下一章提要 429 第 22 章 與Java的互操作 430 22.1 在Scala代碼中使用 Java 名稱 430 22.2 Java泛型與Scala泛型 430 22.3 JavaBean的性質(zhì) 432 22.4 AnyVal類型與Java原生類型 433 22.5 Java代碼中的Scala名稱 433 22.6 本章回顧與下一章提要 434 第 23 章 應(yīng)用程序設(shè)計(jì) 435 23.1 回顧之前的內(nèi)容 435 23.2 注解 437 23.3 Trait即模塊 441 23.4 設(shè)計(jì)模式 442 23.4.1 構(gòu)造型模式 443 23.4.2 結(jié)構(gòu)型模式 443 23.4.3 行為型模式 444 23.5 契約式設(shè)計(jì)帶來更好的設(shè)計(jì) 446 23.6 帕特農(nóng)神廟架構(gòu) 448 23.7 本章回顧與下一章提要 453 第 24 章 元編程:宏與反射 454 24.1 用于理解類型的工具 455 24.2 運(yùn)行時(shí)反射 455 24.2.1 類型反射 455 24.2.2 ClassTag、TypeTag與Manifest 457 24.3 Scala的高級運(yùn)行時(shí)反射API 458 24.4 宏 461 24.4.1 宏的示例:強(qiáng)制不變性 463 24.4.2 關(guān)于宏的最后思考 466 24.5 本章回顧與下一章提要 466 附錄 A 參考文獻(xiàn) 468 作者簡介 473 關(guān)于封面 473
使用說明
1、下載并解壓,得出pdf文件
2、如果打不開本文件,請務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進(jìn)行閱讀試讀
- 下載地址
- 本地下載通道:
- 浙江電信下載
- 北京聯(lián)通下載
- 江蘇電信下載
- 廣東電信下載
有問題? 點(diǎn)此報(bào)錯(cuò)
發(fā)表評論
0條評論軟件排行榜
熱門推薦
- 有柿電腦版 v11.5.684.06M / 簡體中文
- 得間免費(fèi)小說電腦版 v5.2.7.172.56M / 簡體中文
- 網(wǎng)易新聞電腦版 v112.697.63M / 簡體中文
- 瀟湘書院電腦版 v2.3.11.888官方版49.65M / 簡體中文
- 數(shù)據(jù)挖掘?qū)д?官方版61.61M / 簡體中文
- 開源閱讀電腦版 v3.2517.96M / 簡體中文
- 京東讀書電腦版 v1.13.4官方版1.98M / 簡體中文
- 未公開的Oracle數(shù)據(jù)庫秘密 迪貝斯pdf掃描版34.69M / 簡體中文
- linux常用命令大全 chm版1.48M / 簡體中文
- docker入門實(shí)戰(zhàn) pdf完整版1.38M / 簡體中文