本書循序漸進地介紹了Scala編程語言的相關知識,共分為10章,首先詳細介紹了Scala的一些基礎知識,然后進一步介紹了Scala的數(shù)據(jù)類型、基本運算、內(nèi)建控制、類和對象、自適應類型和函數(shù)等知識;另外,本書還介紹了Scala繼承和多態(tài)、權(quán)限和集合、映射和模式匹配等,并系統(tǒng)地介紹了如何與Java進行互操作。本書案例簡便易學,實用性強。
本書適合作為高等院校計算機相關專業(yè)程序設計課程的教材,也可作為Scala技術的培訓用書。
通過大量實例,本書可以幫助讀者更好地鞏固所學知識,提升自己的編程能力;掃描書中的二維碼,讀者可以獲得更多學習資源和技術支持,如教學視頻、案例源代碼、教師指導手冊、教學PPT、教學設計及其他資源等,還有和每章內(nèi)容配合使用的10套作業(yè)和難易程度不同的3套試卷,以方便讀者學習。
很少有一門語言能夠像Scala這樣,因為成為大數(shù)據(jù)框架Spark的核心和首選開發(fā)語言而爆發(fā)式地普及起來的。據(jù)Spark官方統(tǒng)計,2014年和2015年全世界范圍內(nèi)基于Spark開發(fā)采用最多的語言一直都是Scala。另外,在大數(shù)據(jù)領域越來越多的其他技術框架,例如Kafka等也都把Scala作為實現(xiàn)和開發(fā)語言。因此,為了奠定大數(shù)據(jù)領域?qū)W習的基礎,本書以實戰(zhàn)為主導,以實戰(zhàn)與理論相結(jié)合的方式來幫助讀者學習Scala語言。
本書是由直接參與Scala研發(fā)的一線工程師編寫的,因而對Scala原理的解讀和應用更加值得信賴,目的是讓讀者能夠全面理解和掌握Scala編程語言的核心特性,并能夠深入理解Scala語言在設計取舍背后的動因。書中案例簡便易學,實用性強,通過閱讀本書,讀者能夠獲得所需,成為一名合格的Scala程序員。
本書是為想要快速學習或者正在學習Scala編程語言的讀者編寫的,循序漸進地介紹了Scala編程語言的知識。 本書共分10章,首先詳細介紹了Scala的一些基礎知識,并和Java中的相關概念進行了對比學習,以方便讀者快速掌握Scala;然后進一步介紹了Scala的數(shù)據(jù)類型、基本運算、內(nèi)建控制、類和對象、自適應類型和函數(shù)等知識,以及與Java的一些差異,方便讀者編寫出更簡潔的代碼;另外,本書還介紹了Scala繼承和多態(tài)、權(quán)限和集合、映射和模式匹配等,并系統(tǒng)地介紹了如何與Java進行互操作。閱讀本書不需要讀者熟悉Scala和Java編程語言,但如果讀者具備一些Java、面向?qū)ο缶幊痰谋尘爸R,則更為理想。
通過大量實例,本書可以幫助讀者更好地鞏固所學知識,提升自己的編程能力;掃描書中的二維碼,讀者可以獲得更多學習資源和技術支持,如教學視頻、案例源代碼、教師指導手冊、教學PPT、教學設計及其他資源等,還有和每章內(nèi)容配合使用的10套作業(yè)和難易程度不同的3套試卷,以方便讀者學習。
本書由北京智酷道捷教育科技有限公司組織多名一線Scala研發(fā)工程師聯(lián)合編寫,書中案例皆為當下流行的項目案例,極具參考價值,既可作為高等院校本、?朴嬎銠C相關專業(yè)的程序設計教材,也可作為Scala技術的培訓圖書。由于時間有限,書中難免有疏漏及不足之處,敬請廣大讀者批評指正!
編 者
2020年10月
智酷道捷是中關村智酷雙創(chuàng)人才服務股份有限公司下屬高科技教育企業(yè)。旨在打造“產(chǎn)、學、研、用”雙創(chuàng)一 體化深度融合的智能化泛 IT 產(chǎn)教綜合服務平臺。是一家專注于面向 高校提供“產(chǎn)、學、研、用”一體化雙創(chuàng)實踐性教學解決方案,面向 高新技術職業(yè)技能持續(xù)培育的創(chuàng)新型科技教育企業(yè)。公司專注于前沿 技術——基于云計算、大數(shù)據(jù)、以及智能化控制等高新技術開發(fā)的全新資源與服務平臺。公司借鑒發(fā)達國家先進的技術應用教學經(jīng)驗并結(jié)合中國國情,創(chuàng)新提出“雙創(chuàng)雙元、雙元雙通”理論模型,通過“工程實踐中心”這一創(chuàng)新載體,整合高校教育與產(chǎn)業(yè)實踐應用,基于云平臺的大數(shù)據(jù)反饋和自適應機制,打造形成以產(chǎn)業(yè)應用需求為引領,以崗位技能能力圖表為核心線索的智能化課程研發(fā)體系,將產(chǎn)業(yè)應用需求、高校教育過程以及課程研發(fā)機制、產(chǎn)教協(xié)同育人進行一體化聯(lián)動和融合,實現(xiàn)雙創(chuàng)實踐性應用人才智能化、生態(tài)化、個性化、本地化培育,為地方企業(yè)和高校提供優(yōu)質(zhì)的實踐性課程與人才服務。
第1章? Scala入門與基礎1
1.1?Scala的簡介、特點和應用1
1.1.1?為什么選擇Scala1
1.1.2?何為Scala2
1.1.3?Scala的面向?qū)ο蠛秃瘮?shù)式編程示例3
1.1.4?Scala的特性6
1.1.5?Scala的自適應靜態(tài)類型和簡潔性示例8
1.1.6?Scala的應用11
1.2 Scala環(huán)境配置和安裝11
1.2.1?Scala的環(huán)境準備11
1.2.2?Scala在Windows平臺上的安裝11
1.3 Scala的編譯和運行18
1.3.1?Scala的編譯和運行原理18
1.3.2?Scala的編譯、運行和反編譯19
1.3.3?指定編譯和運行路徑24
1.3.4?反編譯的三種方式28
1.3.5?REPL基本操作30
1.3.6?REPL常見命令的應用33
1.4 Scala基礎語法38
1.4.1?Scala的標識符38
1.4.2?Scala的關鍵字和注釋39
1.4.3?Scala的分號41
1.4.4?Scala分號示例演示42
1.4.5?Scala的變量44
1.4.6?Scala變量內(nèi)存結(jié)構(gòu)46
1.4.7?Scala的lazy變量49
小結(jié) 50
習題 50
? 第2章? Scala數(shù)據(jù)類型與基本運算52
2.1 Scala的數(shù)值類型52
2.1.1?數(shù)據(jù)類型的作用及分類52
2.1.2?Scala支持的數(shù)據(jù)類型52
2.1.3?Scala中的數(shù)值數(shù)據(jù)類型53
2.1.4?Scala中的字面量53
2.1.5?Scala中的字符字面量57
2.2 Scala的非數(shù)值類型59
2.2.1?Scala中非數(shù)值類型的介紹59
2.2.2?Scala中字符串的表示59
2.2.3?Scala中字符串的常用方法64
2.2.4?Scala中字符串的分隔64
2.2.5?使用正則表達式對象查找字符串64
2.2.6?Scala中字符串遍歷的使用66
2.2.7?Scala的字符串插值71
2.3 Scala的基本運算75
2.3.1?Scala的運算符75
2.3.2?Scala的算術運算符76
2.3.3?Scala的關系運算符80