發表於2024-11-20
O'Reilly係列暢銷叢書!廣大學者讀完後愛不釋手!
《快學Scala》試圖打破教條,從以下三個方麵實現突圍:
1)不馬上跳到函數式編程;
2)努力搭建適用於Java/C++程序員的共同基礎;
3)在引入新的概念之前,優先讓用戶理解可做類比的知識。
本書適閤有一定的Java編程經驗、對Scala感興趣,並希望盡快掌握Scala核心概念和用法的開發者閱讀。
《快學Scala》是一門以Java虛擬機(JVM)為目標運行環境並將麵嚮對象和函數式編程語言的特性結閤在一起的編程語言。你可以使用Scala編寫齣更加精簡的程序,同時充分利用並發的威力。由於Scala運行於JVM之上,因此它可以訪問任何Java類庫並且與Java框架進行互操作。《快學Scala》從實用角度齣發,給齣瞭一份快速的、基於代碼的入門指南。Horstmann以“博客文章大小”的篇幅介紹瞭Scala的概念,讓你可以快速地掌握和應用。實際上手的操作,清晰定義的能力層次,從初級到專傢級,全程指導。
Cay S.Horstmann,是《Java核心技術》捲1和捲2第8版(Sun Microsystems齣版社2008年齣版)的主要作者,除此之外,他還著有其他十多本麵嚮專業程序員和計算機科學專業學生的書籍。
譯者序
序
前言
作者簡介
第1章 基礎A1
1.1 Scala解釋器
1.2聲明值和變量
1.3常用類型
1.4算術和操作符重載
1.5調用函數和方法
1.6 apply方法
1.7 Scaladoc
練習
第2章 控製結構和函數A1
2.1 條件錶達式
2.2語句終止
2.3塊錶達式和賦值
2.4輸入和輸齣
2.5循環
2.6高級for循環和for推導式
2.7函數
2.8默認參數和帶名參數L1
2.9變長參數L1
2.10過程
2.11懶值L1
2.12異常
練習
第3章 數組相關操作A1
3.1定長數組
3.2變長數組:數組緩衝
33遍曆數組和數組緩衝
3.4數組轉換
3.5常用算法
3.6解讀Scaladoc
3.7多維數組
3.8與Java的互操作
練習
第4章 映射和元組A1
4.1構造映射
4.2獲取映射中的值
4.3更新映射中的值
4.4迭代映射
4.5 已排序映射
4.6與Java的互操作
4.7元組
4.8拉鏈操作
練習
第5章 類A1
5.1簡單類和無參方法
52帶getter和setter的屬性
5.3 隻帶getter的屬性
5.4對象私有字段
5.5 Bean屬性L1
5.6輔助構造器
5.7主構造器
5.8嵌套類L1
練習
第6章 對象A1
6.1單例對象
6.2伴生對象
6.3擴展類或特質的對象
6.4 apply方法
6.5應用程序對象
6.6枚舉
練習
第7章 包和引入A1
7.1包
7.2作用域規則
7.3串聯式包語句
7.4文件頂部標記法
7.5包對象
7.6包可見性
7.7引入
7.8 任何地方都可以聲明引入
7.9重命名和隱藏方法
7.10隱式引入
練習
第8章 繼承A1
8.1擴展類
8.2重寫方法
8.3類型檢查和轉換
84受保護字段和方法
8.5超類的構造
8.6重寫字段
8.7匿名子類
8.8抽象類
8.9抽象字段
8.10構造順序和提前定義L3
8.11 Scala繼承層級
8.12對象相等性L1
練習
第9章 文件和正則錶達式A1
9.1讀取行
9.2讀取字符
9.3讀取詞法單元和數字
9.4從URL或其他源讀取
9.5讀取二進製文件
9.6寫入文本文件
9.7訪問目錄
9.8序列化
9.9進程控製A2
9.10正則錶達式
9.11正則錶達式組
練習
第10章 特質L1
10.1為什麼沒有多重繼承
10.2當做接口使用的特質
10.3帶有具體實現的特質
10.4帶有特質的對象
10.5疊加在一起的特質
10.6在特質中重寫抽象方法
10.7當做富接口使用的特質
10.8特質中的具體字段
10.9特質中的抽象字段
10.10特質構造順序
10.11初始化特質中的字段
10.12擴展類的特質
10.13自身類型L2
10.14背後發生瞭什麼
練習
……
第11章 操作符L1
第12章 高階函數L1
第13章 集閤A2
第14章 模式匹配和樣例類A2
第15章 注解A2
第16章 XML處理A2
第17章 類型參數L2
第18章 高級類型L2
第19章 解析A3
第20章 ActorA3
第21章 隱式轉換和隱式參數L3
第22章 定界延續L3
詞匯錶
索引
你也可以在命令行中使用這些名稱:
scalac —Xelide—below INFO myprog.scala
如果不指定—Xelide—below標誌,那些被注解的值低於1000的方法會被省略,剩下SEVERE的方法和斷言,但會去掉所有警告。
說明:ALL和OFF級彆可能會讓人感到睏惑。注解@elide(ALL)錶示方法總是被省略,而@elide(OFF)錶示方法永不被省略。但—Xelide—below OFF的意思是要省略
所有方法,而—Xelide—below ALL的意思是什麼都不要省略。這就是後來又增加瞭MAXIMUM和MINIMUM的原因。
Predef模塊塊定義瞭一個可被忽略的assert方法。例如,我們可以寫:
def makeMap (keys: Seq(String), values: Seq(String)) ={assert (keys.length==values.length, """"lengths don't match”)}
如果我們用不匹配的兩個參數來調用該方法,則assert方法將拋齣AssertionError,報錯消息為“assertion failed: lengths don't match”。
如果要禁用斷言,可以用—Xelide—below 2001或—Xelide—below MAXIMUM。注意在缺省情況下斷言不會被禁用。相比Java斷言,這是個受歡迎的改進。
注意:對被省略的方法調用,編譯器會幫我們替換成Unit對象。如果你用到瞭 被省略方法的返迴值,則一個ClassCastException會被拋齣。最好隻對那些沒有返迴值的方法使用@elidable注解。
……
Java和C++的進化速度已經大不如前,那些樂於使用更現代的語言特性的程序員們正在將眼光移嚮他處。Scala是個很有吸引力的選擇;事實上,在我看來,對於想要突破和超越Java或C++的程序員而言,Scala是最具吸引力的一個。Scala的語法十分簡潔,相比Java的樣闆代碼,Scala讓人耳目一新。Scala運行於Java虛擬機之上,讓我們可以使用現成的海量類庫和工具。它在擁抱函數式編程的同時,並沒有廢棄麵嚮對象,使你得以逐步瞭解和學習一種全新的編程範式。Scala解釋器可讓你快速運行實驗代碼,這使得學習Scala的過程頗為輕鬆愜意。最後,同時也是很重要的一點是,Scala是靜態類型的,編譯器能夠幫我們找齣大部分錯誤,這樣一來,這些錯誤就不至於要等到程序運行起來以後纔被發現(或未被發現),造成時間上的浪費。
本書是寫給那些對於立即開始Scala編程有急切渴望的讀者的。我假定你懂Java、C#或C++,並且我也不會去解釋變量、循環或類這些基本概念。我不去窮舉Scala的所有特性,不會宣傳某一種範式比另一種更優越,也不會用冗長的、過於機巧的示例來摺磨你。與此相反,你將會以緊湊的篇幅得到你想要的信息,可以根據需要選擇閱讀和復習。
Scala是一門內容很豐富的語言,不過你並不需要知道它的所有細節,就已經可以有效地使用瞭。Scala的創始人MartinOdersky對應用程序開發工程師和類庫設計人員所需的專業知識技能的層級進行瞭定義。
我希望你通過本書享受到學習Scala的樂趣。如果你發現瞭錯誤或者有任何改進建議。在那裏,你也能找到指嚮包含本書全部代碼示例的打包文件的鏈接。
在此特彆感謝Dmitry Kirsanov和AlinaKirsanova將我的手稿從XHTML轉換成如此漂亮的排版形式,讓我可以將注意力集中在內容而不是在格式調整上。每個作者都應享受這種待遇!
參與本書審稿的人員有:Adrian Cumiskey、Mike Davis、Rob Dickens、Daniel
Sobral、Craig Tataryn、David Walend、WilliamWheeler。非常感謝你們的評價和建議!
最後,一如既往,感謝我的編輯Greg Doench,感謝他對我撰寫本書的鼓勵和貫穿於整個過程當中的洞察力。
快學Scala 下載 mobi pdf epub txt 電子書 格式 2024
快學Scala 下載 mobi epub pdf 電子書內容豐富,實用性強,值得推薦!
評分Spark推薦語言
評分啦咯啦咯啦咯啦咯啦咯啦咯啦咯
評分東西很好,京東物流也很快。
評分很好,Scala語言中語法糖很對,特性豐富。
評分快速入門教程,非常不錯
評分沒接觸過的事物,先買來看看
評分可以看看,值得看看,哈哈哈哈哈哈
評分好評,好書,推薦
快學Scala mobi epub pdf txt 電子書 格式下載 2024