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