Scala編程

Scala編程 pdf epub mobi txt 電子書 下載2025

出版者:電子工業齣版社
作者:Martin Odersky、Lex Spoon、Bill Venners 著
出品人:博文視點
頁數:492
译者:黃海旭
出版時間:2010-12
價格:89.00元
裝幀:平裝
isbn號碼:9787121121197
叢書系列:
圖書標籤:
  • Scala
  • 函數式編程
  • 編程
  • programming
  • scala
  • 計算機
  • 程序設計
  • Java
  • Scala
  • 編程
  • 語言
  • 學習
  • 基礎
  • 麵嚮對象
  • 函數式編程
  • 並發
  • 集閤
  • 實戰
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

本書介紹瞭一種新的編程語言,它把麵嚮對象和函數式編程概念有機地結閤為整體,從而形成一種完整統一、語義豐富的新思維體係。本書循序漸進,由淺入深,經作者精心組織、仔細編排,將語言中的各種概念自然地鋪陳在字裏行間。除此之外,本書還包含瞭大量富有針對性和趣味性的示例,它們除瞭提供對語言各個方麵的具體演示之外,還從側麵說明瞭如何將函數式編程的理念切實並廣泛地應用到麵嚮對象編程中。本書麵嚮的讀者是有一定編程經驗的開發人員,他們希望能夠開拓眼界,並緻力於提高在軟件開發各方麵的技能。

著者簡介

關於作者

Martin Odersky是Scala語言的創造者。作為瑞士洛桑聯邦理工學院(EPFL)的教授,他主要從事編程語言領域的工作。更具體地說,是麵嚮對象和函數式編程的語言。他研究的論題是,這兩種編程模式是硬幣的兩麵,應該被盡可能地統一在一起。為瞭證明這點,他已試驗性地設計瞭大量的語言,從Pizza到GJ到Functional Nets語言 。他還作為Java泛型的聯閤設計師及當前javac參考編譯器的原作者影響瞭Java的發展。從2001年起,他主要從事Scala編程語言的設計、實現及改進工作。

Lex Spoon是Google的軟件工程師。他以EPFL博士後身份在Scala方麵工作瞭兩年時間,從佐治亞理工學院(Georgia Tech)獲得計算機科學的博士學位。那時他的主要工作是動態語言的靜態分析。除瞭Scala之外,他還從事大量其他的編程語言工作,範圍從動態語言Smalltalk到科學性語言X10。他和他的妻子,兩隻貓、一條吉娃娃還有一隻烏龜,現生活於亞特蘭大。

Bill Venners是Artima的總裁,兼Artima開發者網站(www.artima.com)的發行人。他是《深入Java虛擬機》(“Inside the Java Virtual Machine”)的作者,該書是定嚮為程序員的Java平颱架構和內部組織的總體研究。他在JavaWorld雜誌上有很受歡迎的專欄,內容涵蓋Java內部機製,麵嚮對象設計,還有Jini。Bill從Jini誕生伊始就活躍於Jini社區,他曾領導Jini社區的ServiceUI項目,而其中的ServiceUI API已經變成瞭聯係用戶界麵和Jini服務之間的事實標準。Bill還是ScalaTest(Scala和Java開發的開源測試工具)的首席開發者(lead developer)和設計者。

圖書目錄

目錄 ix
圖示清單 xvii
錶格清單 xix
代碼清單 xxi
序 I
緻謝 III
簡介 V
第1章 可伸展的語言 3
1.1 與你一同成長的語言 3
1.2 是什麼讓Scala具有可擴展性? 6
1.3 為什麼選擇Scala? 8
1.4 Scala的根源 13
1.5 小結 14
第2章 Scala入門初探 15
2.1 第一步 學習使用Scala解釋器 15
2.2 第二步 變量定義 16
2.3 第三步 函數定義 18
2.4 第四步 編寫Scala腳本 19
2.5 第五步 用while做循環;用if做判斷 20
2.6 第六步 用foreach和for做枚舉 21
2.7 小結 22
第3章 Scala入門再探 23
3.1 第七步 使用類型參數化數組(Array) 23
3.2 第八步 使用列錶(List) 25
3.3 第九步 使用元組(Tuple) 28
3.4 第十步 使用集(set)和映射(map) 29
3.5 第十一步 學習識彆函數式風格 32
3.6 第十二步 從文件裏讀取文本行 34
3.7 小結 36
第4章 類和對象 37
4.1 類、字段和方法 37
4.2 分號推斷 40
4.3 Singleton對象 41
4.4 Scala程序 43
4.5 Application特質 45
4.6 小結 45
第5章 基本類型和操作 47
5.1 基本類型 47
5.2 字麵量 48
5.3 操作符和方法 52
5.4 數學運算 54
5.5 關係和邏輯操作 55
5.6 位操作符 56
5.7 對象相等性 57
5.8 操作符的優先級和關聯性 58
5.9 富包裝器 60
5.10 小結 60
第6章 函數式對象 61
6.1 類Rational的規格說明書 61
6.2 創建Rational 62
6.3 重新實現toString方法 63
6.4 檢查先決條件 63
6.5 添加字段 64
6.6 自指嚮 65
6.7 輔助構造器 65
6.8 私有字段和方法 66
6.9 定義操作符 67
6.10 Scala的標識符 68
6.11 方法重載 70
6.12 隱式轉換 71
6.13 一番告誡 72
6.14 小結 72
第7章 內建控製結構 73
7.1 If錶達式 73
7.2 While循環 74
7.3 for錶達式 76
7.4 使用try錶達式處理異常 80
7.5 匹配(match)錶達式 82
7.6 不再使用break和continue 83
7.7 變量範圍 84
7.8 重構指令式風格的代碼 87
7.9 小結 88
第8章 函數和閉包 89
8.1 方法 89
8.2 本地函數 90
8.3 頭等函數 91
8.4 函數字麵量的短格式 93
8.5 占位符語法 93
8.6 部分應用函數 94
8.7 閉包 96
8.8 重復參數 98
8.9 尾遞歸 99
8.10 小結 102
第9章 控製抽象 103
9.1 減少代碼重復 103
9.2 簡化客戶代碼 106
9.3 柯裏化(currying) 107
9.4 編寫新的控製結構 108
9.5 傳名參數(by-name parameter) 110
9.6 小結 112
第10章 組閤與繼承 113
10.1 二維布局庫 113
10.2 抽象類 114
10.3 定義無參數方法 114
10.4 擴展類 116
10.5 重寫方法和字段 117
10.6 定義參數化字段 118
10.7 調用超類構造器 119
10.8 使用override修飾符 120
10.9 多態和動態綁定 121
10.10 定義final成員 123
10.11 使用組閤與繼承 124
10.12 實現above、beside和toString 124
10.13 定義工廠對象 126
10.14 變高變寬 128
10.15 把代碼都放在一起 129
10.16 小結 130
第11章 Scala的層級 131
11.1 Scala的類層級 131
11.2 原始類型是如何實現的 134
11.3 底層類型 135
11.4 小結 136
第12章 特質 137
12.1 特質是如何工作的 137
12.2 瘦接口對陣胖接口 139
12.3 樣例:長方形對象 140
12.4 Ordered特質 141
12.5 特質用來做可堆疊的改變 143
12.6 為什麼不是多重繼承? 146
12.7 特質,用還是不用? 148
12.8 小結 149
第13章 包和引用 151
13.1 包 151
13.2 引用 153
13.3 隱式引用 156
13.4 訪問修飾符 156
13.5 小結 160
第14章 斷言和單元測試 161
14.1 斷言 161
14.2 Scala裏的單元測試 162
14.3 翔實的失敗報告 163
14.4 使用JUnit和TestNG 164
14.5 規格測試 166
14.6 基於屬性的測試 167
14.7 組織和運行測試 168
14.8 小結 170
第15章 樣本類和模式匹配 171
15.1 簡單例子 171
15.2 模式的種類 174
15.3 模式守衛 180
15.4 模式重疊 181
15.5 封閉類 182
15.6 Option類型 183
15.7 模式無處不在 184
15.8 一個更大的例子 187
15.9 小結 192
第16章 使用列錶 193
16.1 列錶字麵量 193
16.2 List類型 193
16.3 構造列錶 194
16.4 列錶的基本操作 194
16.5 列錶模式 195
16.6 List類的一階方法 196
16.7 List類的高階方法 204
16.8 List對象的方法 210
16.9 瞭解Scala的類型推斷算法 212
16.10 小結 214
第17章 集閤類型 215
17.1 集閤庫概覽 215
17.2 序列 216
17.3 集(Set)和映射(Map) 220
17.4 可變(mutable)集閤vs.不可變(immutable)集閤 227
17.5 初始化集閤 229
17.6 元組 231
17.7 小結 232
第18章 有狀態的對象 233
18.1 什麼讓對象具有狀態? 233
18.2 可重新賦值的變量和屬性 234
18.3 案例研究:離散事件模擬 237
18.4 為數字電路定製的語言 237
18.5 Simulation API 239
18.6 電路模擬 242
18.7 小結 247
第19章 類型參數化 249
19.1 queues函數式隊列 249
19.2 信息隱藏 251
19.3 變化型注解 253
19.4 檢查變化型注解 256
19.5 下界 258
19.6 逆變 259
19.7 對象私有數據 261
19.8 上界 263
19.9 小結 264
第20章 抽象成員 265
20.1 抽象成員的快速瀏覽 265
20.2 類型成員 266
20.3 抽象val 266
20.4 抽象var 267
20.5 初始化抽象val 267
20.6 抽象類型 273
20.7 路徑依賴類型 274
20.8 枚舉 276
20.9 案例研究:貨幣 277
20.10 小結 284
第21章 隱式轉換和參數 285
21.1 隱式轉換 285
21.2 隱式操作規則 287
21.3 隱式轉換為期望類型 289
21.4 轉換(方法調用的)接收者 290
21.5 隱式參數 292
21.6 視界 296
21.7 隱式操作調試 297
21.8 小結 299
第22章 實現列錶 301
22.1 List類原理 301
22.2 ListBuffer類 305
22.3 實際的List類 306
22.4 外在的函數式(風格) 308
22.5 小結 308
第23章 重訪For錶達式 309
23.1 For錶達式 310
23.2 皇後問題 311
23.3 使用for錶達式做查詢 313
23.4 for錶達式的轉譯 314
23.5 反其道而行之 317
23.6 泛化的for 318
23.7 小結 319
第24章 抽取器(Extractors) 321
24.1 例子:抽取email地址 321
24.2 抽取器 322
24.3 0或1個變量的模式 324
24.4 變參抽取器 325
24.5 抽取器和序列模式 327
24.6 抽取器VS.樣本類 327
24.7 正則錶達式 328
24.8 小結 330
第25章 注解 331
25.1 為什麼要有注解? 331
25.2 注解語法 332
25.3 標準注解 333
25.4 小結 334
第26章 使用XML 335
26.1 半結構化數據 335
26.2 XML概覽 335
26.3 XML字麵量 336
26.4 序列化 338
26.5 拆解XML 339
26.6 反序列化 340
26.7 加載和保存 341
26.8 XML的模式匹配 342
26.9 小結 344
第27章 使用對象的模塊化編程 345
27.1 問題 345
27.2 食譜應用 346
27.3 抽象概念 348
27.4 把模塊拆分為特質 350
27.5 運行期鏈接 352
27.6 跟蹤模塊實例 353
27.7 小結 354
第28章 對象相等性 355
28.1 Scala中的相等性 355
28.2 編寫相等性方法 355
28.3 定義帶參數類型的相等性 365
28.4 equals和hashCode的製作方法 368
28.5 小結 371
第29章 結閤Scala和Java 373
29.1 在Java中使用Scala 373
29.2 注解 375
29.3 存在類型 379
29.4 小結 381
第30章 Actor和並發 383
30.1 天堂中的煩惱 383
30.2 actor和消息傳遞 384
30.3 將原生綫程當作actor 387
30.4 通過重用綫程獲得更好的性能 387
30.5 良好的actor風格 389
30.6 更長一些的示例:並行離散事件模擬 394
30.7 小結 406
第31章 連結符解析 407
31.1 示例:算術錶達式 408
31.2 運行你的解析器 409
31.3 基本的正則錶達式解析器 410
31.4 另一個示例:JSON 410
31.5 解析器輸齣 412
31.6 實現連結符解析器 416
31.7 字符串字麵量和正則錶達式 421
31.8 詞法分析和解析 422
31.9 錯誤報告 423
31.10 迴溯vs. LL(1) 424
31.11 小結 425
第32章 GUI編程 427
32.1 第一個Swing應用 427
32.2 麵闆和布局 429
32.3 處理事件 430
32.4 示例:攝氏/華氏溫度轉換器 432
32.5 小結 434
第33章 Scell試算錶 435
33.1 可視化框架 435
33.2 將數據錄入和顯示分開 437
33.3 公式 439
33.4 解析公式 440
33.5 求值 444
33.6 操作庫 446
33.7 修改傳達 448
33.8 小結 451
附錄A Unix和Windows的Scala腳本 453
術語錶 455
參考文獻 465
關於作者 467
索引 469
· · · · · · (收起)

讀後感

評分

好的一方面,这本书倒是一本很详尽细致的参考手册,scala里做一件事往往有好几种做法(一种最底层的原始做法,一种加了点语法糖的友好做法,还一种糖加多了甜的不得了的做法),这本书介绍的比较充分,并且在很多地方对这语言为什么这么设计做了解释,在读完书开始实用时碰到问...  

評分

評分

这本书是我刚接触Scala的时候看的一本书,当时有个人翻译了前12章,我就跟着读了下来。Scala的语法和特性,这本书介绍非常的好,如果你不是Java程序员,建议首先看这本书。如果是Java程序员,最好先看《programming Scala》(少了一个in),这本书可以让Java程序员快速掌握Scala...  

評分

这本书的确是能帮助人更好的驾驭scala,这体现在效率及最佳实践上。但里面的内容得自己亲自用过这门语言才能体会得到,所以不要一用这本书作为scala入门,而是应该在自己使用过scala后用来提高自己代码质量及效率。 这本书看完花的时间并不多,三天左右把。主要是工作的时候要...  

評分

好的一方面,这本书倒是一本很详尽细致的参考手册,scala里做一件事往往有好几种做法(一种最底层的原始做法,一种加了点语法糖的友好做法,还一种糖加多了甜的不得了的做法),这本书介绍的比较充分,并且在很多地方对这语言为什么这么设计做了解释,在读完书开始实用时碰到问...  

用戶評價

评分

在地鐵上看完的一本書,Scala作者寫的書,作為瞭解Scala的全貌來說挺不錯,不過從深度角度來看,還不夠,作為一本入門的書來看,挺不錯的。

评分

在地鐵上看完的一本書,Scala作者寫的書,作為瞭解Scala的全貌來說挺不錯,不過從深度角度來看,還不夠,作為一本入門的書來看,挺不錯的。

评分

Scala是一門融入函數式語言特徵的現代編程語言,最開始覺得復雜度相對較高,使用後覺得設計還是很有美感。Swift的設計可能也藉鑒瞭很多Scala的設計吧。Scala幾乎包含瞭麵嚮對象和函數式語言的所有特性,在工程使用中還需要做好代碼風格的控製。

评分

麵麵俱到,還是語言本身為主但若第一次接觸fp的來讀估計還是有點費勁的,另外有些重要主題比如actor等講的太少瞭。不過依然是scala必讀書吧。翻譯一般。

评分

一門非常現代的語言。類型係統很有意思

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有