IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
Scala是什么呢?和我們所熟知的Java語(yǔ)言一樣,它也是一門(mén)編程語(yǔ)言。了解過(guò)大數(shù)據(jù)的朋友都應(yīng)該聽(tīng)說(shuō)過(guò)Spark框架,那么Spark的源碼就是用Scala來(lái)寫(xiě)的。所以,如果我們要學(xué)習(xí)Spark,首先要熟悉Scala的語(yǔ)法。并且,如果我們Scala掌握的很好,那么就可以研究Spark源碼了,這是多么令人激動(dòng)的一件事情呢。
這篇文章中,我們先來(lái)了解下Scala的特點(diǎn)吧。
1. 與Java的無(wú)縫整合
Scala也是運(yùn)行在JVM上,所以可以和Java無(wú)縫整合。Scala可以在任何地方,調(diào)用Java類(lèi)或接口中的方法。
2. 類(lèi)型推斷
熟悉Java的朋友都知道,Java中有8種基本數(shù)據(jù)類(lèi)型:byte、short、int、long、float、double、boolean、char。并且,聲明變量時(shí)都需要指明類(lèi)型。而在Scala中,聲明變量都是用var或val聲明,不用指明具體的類(lèi)型。變量的類(lèi)型會(huì)根據(jù)所賦值的數(shù)據(jù)類(lèi)型自動(dòng)推斷。在Scala中,不僅變量的類(lèi)型可以自動(dòng)推斷,方法的返回值類(lèi)型大部分情況下也是可以省略的。這些都使得Scala更加靈活和簡(jiǎn)約。在Scala中推尚的就是簡(jiǎn)約,能省則省。如果您深入學(xué)習(xí)Scala,就會(huì)對(duì)這一點(diǎn)有更深的體會(huì)哦!
3. 并發(fā)和分布式
Scala天生就是并發(fā)和分布式的。Scala集合上可以使用數(shù)據(jù)并行操作。Scala中的Actor可以實(shí)現(xiàn)類(lèi)似于多線程的功能,同時(shí)又沒(méi)有多線程的并發(fā)問(wèn)題。
4. 特質(zhì)(TRAITS)
Scala中的特質(zhì)類(lèi)似于Java中的接口,但是功能比接口功能更強(qiáng)大。簡(jiǎn)單來(lái)說(shuō),大家可以把特質(zhì)理解為Java中接口和抽象類(lèi)的結(jié)合體。
5. 模式匹配
Java中的switch語(yǔ)句,大家都應(yīng)該很熟悉,可以做常量數(shù)據(jù)的匹配。而Scala中的模式匹配,功能要強(qiáng)大的多哦,它不僅可以匹配常量,還可以匹配各種數(shù)據(jù)類(lèi)型。
6. 高階函數(shù)
提到Scala,我們就不能不說(shuō)說(shuō)它的高階函數(shù)了。Scala的一個(gè)最大特性是面向?qū)ο,另一大特性就是面向函?shù)了。函數(shù)在Scala中是一等公民,是可以獨(dú)立存在的。并且,這里的函數(shù)不僅可以是普通的函數(shù),還可以是高階函數(shù)。那么什么是高階函數(shù)呢?簡(jiǎn)單來(lái)說(shuō),就是如果我們把函數(shù)理解為一種數(shù)據(jù)類(lèi)型,那么在這里,函數(shù)是可以作為另一個(gè)函數(shù)的參數(shù)來(lái)傳遞或者作為其他函數(shù)的返回值返回,這就是高階函數(shù)。
>>本文地址:http://www.yceu.cn/zhuanye/2019/48239.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?
07月15日Java
咨詢(xún)/試聽(tīng)07月15日Python+人工智能
咨詢(xún)/試聽(tīng)07月15日Web前端
咨詢(xún)/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢(xún)/試聽(tīng)07月15日大數(shù)據(jù)
咨詢(xún)/試聽(tīng)07月15日Java
咨詢(xún)/試聽(tīng)07月15日Python+人工智能
咨詢(xún)/試聽(tīng)07月15日Web前端
咨詢(xún)/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢(xún)/試聽(tīng)07月15日大數(shù)據(jù)
咨詢(xún)/試聽(tīng)