| | | Scala程序設計 第2版(圖靈出品) | 該商品所屬分類:圖書 -> 人民郵電出版社 | 【市場價】 | 662-960元 | 【優惠價】 | 414-600元 | 【作者】 | 萬普勒佩恩王淵陳明 | 【出版社】 | 人民郵電出版社 | 【ISBN】 | 9787115416810 | 【折扣說明】 | 一次購物滿999元台幣免運費+贈品 一次購物滿2000元台幣95折+免運費+贈品 一次購物滿3000元台幣92折+免運費+贈品 一次購物滿4000元台幣88折+免運費+贈品
| 【本期贈品】 | ①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
| |
版本 | 正版全新電子版PDF檔 | 您已选择: | 正版全新 | 溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。 *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。 *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。 | | | | 內容介紹 | |
![](/c49/99/11901890.jpg)
出版社:人民郵電出版社 ISBN:9787115416810 版次:1 商品編碼:11901890 品牌:iTuring 包裝:平裝 叢書名:圖靈程序設計叢書 開本:16開 出版時間:2016-03-01 用紙:膠版紙 頁數:473 正文語種:中文 作者:萬普勒,佩恩,王淵,陳明
" 編輯推薦 本書全面介紹Scala這門針對JVM的編程語言,它集成了現代對像模型、函數式編程和先進類型繫統的所有優勢。通過大量的代碼示例,本書向讀者展示了如何高效地利用Scala語言及其生態繫統,同時解釋了為何Scala是開發高擴展性、以數據為中心的應用程序的理想語言。第2版還介紹了Scala的新特性,新增了模式匹配和高級函數式編程的章節。此外,讀者還可以學到Scala的命令行工具、第三方工具、庫等。 內容簡介 本書通過大量的代碼示例,全面介紹Scala這門針對JVM的編程語言,向讀者展示了如何高效地利用Scala語言及其生態繫統,同時解釋了為何Scala是開發高擴展性、以數據為中心的應用程序的理想語言。 本書既適合Scala初學者入門,也適合經驗豐富的Scala開發者參考。 作者簡介 Dean Wampler博士是Typesafe公司的大數據產品架構師。Typesafe使用Scala、函數式編程、Spark、Hadoop以及Akka技術編寫以數據為中心的工具和服務。Dean是《面向Java開發者的函數式編程》的作者,同時也與他人合著了《Hive編程指南》一書。 Alex Payne是Twitter的平臺組長。在Alex開發的服務基礎上,其他的程序開發者構造了一套備受歡迎的社交消息服務。此前,Alex還為政治競選、公益性組織以及初創企業編寫過一些Web應用。 目錄 序 xv 前言 xvii 第 1 章零到六十:Scala 簡介 1 1.1為什麼選擇Scala 1 1.1.1富有魅力的Scala 2 1.1.2關於Java 8 3 1.2安裝Scala 3 1.2.1使用SBT 5 1.2.2執行Scala 命令行工具 6 1.2.3在IDE中運行Scala REPL 8 1.3使用Scala 8 1.4並發 17 1.5本章回顧與下一章提要 27 第 2 章更簡潔,更強大 28 2.1分號 28 2.2變量聲明 29 2.3Range 31 2.4偏函數 32 2.5方法聲明 33 2.5.1方法默認值和命名參數列表 33 2.5.2方法具有多個參數列表 34 2.5.3Future 簡介 35 2.5.4嵌套方法的定義與遞歸 38 2.6推斷類型信息 40 2.7保留字 44 2.8字面量 46 2.8.1整數字面量 46 2.8.2浮點數字面量 47 2.8.3布爾型字面量 48 2.8.4字符字面量 48 2.8.5字符串字面量 48 2.8.6符號字面量 50 2.8.7函數字面量 50 2.8組字面量 50 2.9 Option、Some和None:避免使用null 52 2.10封閉類的繼承 53 2.11用文件和名空間組織代碼 54 2.12導入類型及其成員 55 2.12.1導入是相對的 56 2.12.2包對像 57 2.13抽像類型與參數化類型 57 2.14本章回顧與下一章提要 59 第 3 章要點詳解 60 3.1操作符重載 ? 60 3.2無參數方法 63 3.3優先級規則 64 3.4領域特定語言 65 3.5Scala中的if語句 66 3.6Scala中的for推導式 67 3.6.1for循環 67 3.6.2生成器表達式 67 3.6.3保護式素 67 3.6.4Yielding 68 3.6.5擴展作用域與值定義 69 3.7其他循環結構 70 3.7.1Scala的while循環 71 3.7.2Scala中的do-while循環 71 3.8條件操作符 71 3.9使用try、catch和final子句 72 3.10名字調用和值調用 75 3.11惰性賦值 78 3.12枚舉 79 3.13可插入字符串 81 3.14Trait:Scala語言的接口和“混入” 83 3.15本章回顧與下一章提要 85 第 4 章模式匹配 86 4.1簡單匹配 86 4.2match中的值、變量和類型 87 4.3序列的匹配 90 4組的匹配 94 4.5case中的guard語句 94 4.6case類的匹配 95 4.6.1unapply方法 96 4.6.2unapplySeq方法 100 4.7可變參數列表的匹配 101 4.8正則表達式的匹配 103 4.9再談case語句的變量綁定 104 4.10再談類型匹配 104 4.11封閉繼承層級與全覆蓋匹配 105 4.12模式匹配的其他用法 107 4.13總結關於模式匹配的評價 111 4.14本章回顧與下一章提要 111 第 5 章隱式詳解 112 5.1隱式參數 112 5.2隱式參數適用的場景 115 5.2.1執行上下文 115 5.2.2功能控制 115 5.2.3限定可用實例 116 5.2.4隱式證據 120 5.2.5繞開類型擦除帶來的限制 122 5.2.6改善報錯信息 124 5.2.7虛類型 124 5.2.8隱式參數遵循的規則 127 5.3隱式轉換 128 5.3.1構建獨有的字符串插入器 132 5.3.2表達式問題 134 5.4類型類模式 135 5.5隱式所導致的技術問題 137 5.6隱式解析規則 139 5.7Scala內置的各種隱式 139 5.8合理使用隱式 146 5.9本章回顧與下一章提要 146 第 6 章 Scala函數式編程 147 6.1什麼是函數式編程 148 6.1.1數學中的函數 148 6.1.2不可變變量 149 6.2Scala中的函數式編程 151 6.2.1匿名函數、Lambda與閉包 152 6.2.2內部與外部的純粹性 154 6.3遞歸 154 6.4尾部調用和尾部調用優化 155 6.5偏應用函數與偏函數 157 6.6Curry化與函數的其他轉換 158 6.7函數式編程的數據結構 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關於復制 186 6.12本章回顧與下一章提要 188 第 7 章深入學習for推導式 189 7.1內容回顧:for推導素 189 7.2 for推導式:內部機制 192 7.3 for推導式的轉化規則 194 7.4 Option以及其他的一些容器類型 197 7.4.1 Option容器 197 7.4.2 Either:Option類型的邏輯擴展 200 7.4.3 Try類型 205 7.4.4Scalaz提供的Validation類 206 7.5本章回顧與下一章提要 209 第 8 章Scala面向對像編程 210 8.1類與對像初步 211 8.2引用與值類型 213 8.3價值類 214 8.4父類 217 8.5Scala的構造器 217 8.6類的字段 221 8.6.1統一訪問原則 223 8.6.方法 224 8.7驗證輸入 224 8.8調用父類構造器(與良好的面向對像設計) 226 8.9嵌套類型 230 8.10本章回顧與下一章提要 232 第 9 章特征 233 9.1Java 8中的接口 233 9.2混入trait 234 9.3可堆疊的特征 238 9.4構造trait 243 9.5選擇類還是trait 244 9.6本章回顧與下一章提要 245 第 10 章Scala對像繫統(I) 246 10.1參數化類型:繼承轉化 246 10.1.1Hood下的函數 247 10.1.2可變類型的變異 250 10.1.3Scala和Java中的變異 252 10.2Scala的類型層次結構 253 10.3閑話Nothing(以及Null) 254 10.4 Product、cas組 258 10.5 Predef對像 260 10.5.1隱式轉換 260 10.5.2類型定義 262 10.5.3條件檢查方法 263 10.5.4輸入輸出方法 263 10.5.5雜項方法 265 10.6對像的相等 265 10.6.1 equals方法 266 10.6.2 ==和!=方法 266 10.6.3 eq和ne方法 267 10.6.4數組相等和sameElements方法 267 10.7本章回顧與下一章提要 268 第 11 章Scala對像繫統(II) 269 11.1覆寫類成員和trait成員 269 11.2嘗試覆寫final聲明 272 11.3覆寫抽像方法和具體方法 272 11.4覆寫抽像字段和具體字段 274 11.5覆寫抽像類型 280 11.6無須區分訪問方法和字段:統一訪問原則 280 11.7對像層次結構的線性化算法 282 11.8本章回顧與下一章提要 287 第 12 章Scala集合庫 288 12.1通用、可變、不可變、並發以及並行集合 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集合庫的設計慣例 296 12.3.1 Builder 296 12.3.2 CanBuildFrom 297 12.3.3 Like特征 298 12.4值類型的特化 298 12.5本章回顧與下一章提要 300 第 13 章可見性規則 301 13.1默認可見性:公有可見性 301 13.2可見性關鍵字 302 13.3Public可見性 303 13.4Protected可見性 304 13.5Private可見性 305 13.6作用域內私有和作用域內受保護可見性 306 13.7對可見性的想法 312 13.8本章回顧與下一章提要 313 第 14 章Scala類型繫統(I) 314 14.1參數化類型 315 14.1.1變異標記 315 14.1.2類型構造器 315 14.1.3類型參數的名稱 315 14.2類型邊界 315 14.2.1類型邊界上限 316 14.2.2類型邊界下限 316 14.3上下文邊界 320 14.4視圖邊界 320 14.5理解抽像類型 322 14.6自類型標記 325 14.7結構化類型 329 14.8復合類型 332 14.9存在類型 334 14.10本章回顧與下一章提要 335 第 15 章Scala 類型繫統(II) 336 15.1路徑相關類型 336 15.1.1C.this 337 15.1.2C.super 337 15.1.3path.x 338 15.2依賴方法類型 339 15.3類型投影 340 15.4值的類型 343 15.4組類型 343 15.4.2函數類型 343 15.4.3中綴類型 343 15.5Higher-Kinded類型 344 15.6類型Lambda 348 15.7自遞歸類型:F-Bounded 多態 350 15.8本章回顧與下一章提要 351 第 16 章高級函數式編程 352 16.1代數數據類型 352 16.1.1加法類型與乘法類型 352 16.1.2代數數據類型的屬性 354 16.1.3代數數據類型的最後思考 355 16.2範疇理論 355 16.2.1關於範疇 356 16.2.2Functor範疇 356 16.2.3Monad範疇 360 16.2.4Monad的重要性 362 16.3本章回顧與下一章提要 363 第 17 章並發工具 365 17.1scala.sys.process包 365 17.2Future類型 367 17.3利用Actor模型構造穩固且可擴展的並發應用 371 17.4Akka:為Scala設計的Actor繫統 372 17.5Pickling和Spores 383 17.6反應式編程 384 17.7本章回顧與下一章提要 385 第 18 章Scala與大數據 386 18.1大數據簡史 386 18.2用Scala改善MapReduce 387 18.3超越MapReduce 392 18.4數學範疇 393 18.5Scala數據工具列表 394 18.6本章回顧與下一章提要 394 第 19 章Scala動態調用 396 19.1一個較為激進的示例:Ruby on Rails框架中的ActiveRecord庫 396 19.2使用動態特征實現Scala中的動態調用 397 19.3關於DSL的一些思考 402 19.4本章回顧與下一章提要 402 第 20 章Scala的領域特定語言 403 20.1DSL 示例:Scala中XML和JSON DSL 404 20.2內部DSL 406 20.3包含解析組合子的外部DSL 410 20.3.1關於解析組合子 410 20.3.2計算工資單的外部DSL 410 20.4內部DSL與外部DSL:最後的思考 413 20.5本章回顧與下一章提要 413 第 21 章Scala工具和庫 414 21.1命令行工具 414 21.1.1命令行工具:scalac 414 21.1.2Scala命令行工具 418 21.1.3scalap和javap命令行工具 421 21.1.4scaladoc命令行工具 422 21.1.5fsc命令行工具 422 21.2構建工具 422 21.2.1SBT:Scala標準構建工具 423 21.2.2其他構建工具 425 21.3與IDE或文本編輯器集成 425 21.4在Scala中應用測試驅動開發 426 21.5第三方庫 427 21.6本章回顧與下一章提要 429 第 22 章與Java的互操作 430 22.1在Scala代碼中使用 Java 名稱 430 22.2Java泛型與Scala泛型 430 22.3JavaBean的性質 432 22.4 AnyVal類型與Java原生類型 433 22.5Java代碼中的Scala名稱 433 22.6本章回顧與下一章提要 434 第 23 章應用程序設計 435 23.1回顧之前的內容 435 23.2注解 437 23.3Trait即模塊 441 23.4設計模式 442 23.4.1構造型模式 443 23.4.2結構型模式 443 23.4.3行為型模式 444 23.5契約式設計帶來更好的設計 446 23.6帕特農神廟架構 448 23.7本章回顧與下一章提要 453 第 24編程:宏與反射 454 24.1用於理解類型的工具 455 24.2運行時反射 455 24.2.1類型反射 455 24.2.2ClassTag、TypeTag與Manifest 457 24.3Scala的高級運行時反射API 458 24.4宏 461 24.4.1宏的示例:強制不變性 463 24.4.2關於宏的最後思考 466 24.5本章回顧與下一章提要 466 附錄 A參考文獻 468 作者簡介 473 關於封面 473 查看全部↓
" | | | | | |