IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
Scala是什么呢?和我們所熟知的Java語(yǔ)言一樣,它也是一門編程語(yǔ)言。了解過大數(shù)據(jù)的朋友都應(yīng)該聽說過Spark框架,那么Spark的源碼就是用Scala來(lái)寫的。所以,如果我們要學(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類或接口中的方法。
2. 類型推斷
熟悉Java的朋友都知道,Java中有8種基本數(shù)據(jù)類型:byte、short、int、long、float、double、boolean、char。并且,聲明變量時(shí)都需要指明類型。而在Scala中,聲明變量都是用var或val聲明,不用指明具體的類型。變量的類型會(huì)根據(jù)所賦值的數(shù)據(jù)類型自動(dòng)推斷。在Scala中,不僅變量的類型可以自動(dòng)推斷,方法的返回值類型大部分情況下也是可以省略的。這些都使得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)類似于多線程的功能,同時(shí)又沒有多線程的并發(fā)問題。
4. 特質(zhì)(TRAITS)
Scala中的特質(zhì)類似于Java中的接口,但是功能比接口功能更強(qiáng)大。簡(jiǎn)單來(lái)說,大家可以把特質(zhì)理解為Java中接口和抽象類的結(jié)合體。
5. 模式匹配
Java中的switch語(yǔ)句,大家都應(yīng)該很熟悉,可以做常量數(shù)據(jù)的匹配。而Scala中的模式匹配,功能要強(qiáng)大的多哦,它不僅可以匹配常量,還可以匹配各種數(shù)據(jù)類型。
6. 高階函數(shù)
提到Scala,我們就不能不說說它的高階函數(shù)了。Scala的一個(gè)最大特性是面向?qū)ο螅硪淮筇匦跃褪敲嫦蚝瘮?shù)了。函數(shù)在Scala中是一等公民,是可以獨(dú)立存在的。并且,這里的函數(shù)不僅可以是普通的函數(shù),還可以是高階函數(shù)。那么什么是高階函數(shù)呢?簡(jiǎn)單來(lái)說,就是如果我們把函數(shù)理解為一種數(shù)據(jù)類型,那么在這里,函數(shù)是可以作為另一個(gè)函數(shù)的參數(shù)來(lái)傳遞或者作為其他函數(shù)的返回值返回,這就是高階函數(shù)。
>>本文地址:http://uj2y2uok.com/zhuanye/2019/48239.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?