文章作者郵箱:yugongshiye@sina.cn? ? ? ? ? ? ? 地址:廣東惠州
?▲ 本章節(jié)目的
??了解Scala的特點(diǎn);
? 了解Scala的開(kāi)發(fā)環(huán)境搭建;
? 了解Scala的開(kāi)發(fā)工具;
一、概述
1.簡(jiǎn)介
Scala既是面向?qū)ο?/strong>的語(yǔ)言,也是面向函數(shù)的語(yǔ)言。scala可以為你在做大量代碼重用和擴(kuò)展是提供優(yōu)雅的層次結(jié)構(gòu),并可以通過(guò)高階函數(shù)來(lái)實(shí)現(xiàn)這樣的目標(biāo)。(高階函數(shù)是函數(shù)式編程里的特性之一,允許函數(shù)作為參數(shù)傳遞,也允許函數(shù)作為返回值來(lái)返回)
Martin是EPFL(瑞士領(lǐng)先的技術(shù)大學(xué),洛桑聯(lián)邦理工學(xué)院)編程研究組的教授。他在整個(gè)職業(yè)生涯中一直不斷追求著一個(gè)目標(biāo):讓寫程序這樣一個(gè)基礎(chǔ)工作變得高效、簡(jiǎn)單、且令人愉悅。
他可能比世界上任何一個(gè)人寫過(guò)更多的Java和Scala代碼。他編寫了javac,這是目前大部分Java程序員所使用的編譯器。他也編寫了Scala編譯器scalac,可謂是Scala社區(qū)飛速發(fā)展的基石。
2.?Scala語(yǔ)言的特點(diǎn)
Scala并不適于編程的初級(jí)課程。相反,它是為專業(yè)程序員定制的強(qiáng)力語(yǔ)言。
1. 它是一門現(xiàn)代編程語(yǔ)言,作者是Martin Odersky(javac之父),受到Java、Ruby、Smalltalk、ML、Haskell、Erlang等語(yǔ)言的影響。
2. 它即是一門面向?qū)ο螅∣OP)語(yǔ)言,每個(gè)變量都是一個(gè)對(duì)象,每個(gè)“操作符”都是方法。scala語(yǔ)言在面向?qū)ο蟮姆矫妫萰ava更徹底。
它同時(shí)也是一門函數(shù)式編程(FP)語(yǔ)言,可以將函數(shù)作為參數(shù)傳遞。你可以用OOP、FP,或者兩者結(jié)合的方式編寫代碼。
3. Scala代碼通過(guò)scalac編譯成.class文件,然后在JVM上運(yùn)行,可以無(wú)縫使用已有的豐富的Java類庫(kù)。即Scala的代碼會(huì)編譯成字節(jié)碼,運(yùn)行在Java虛擬機(jī)(JVM)上。
4. 接觸語(yǔ)言的第一天你就能編出有趣的程序,但是這門語(yǔ)言很深?yuàn)W,隨著學(xué)習(xí)的深入,你會(huì)發(fā)現(xiàn)更新、更好的編寫代碼的方式。Scala會(huì)改變你對(duì)編程的看法。針對(duì)同一任務(wù),可以有很多種不同的實(shí)現(xiàn)方式,并且可讀性以及性能都有不一樣的體現(xiàn)。
3.?scala編程的一個(gè)示例:
Array(1,2,3,4)?
如何遍歷數(shù)組中的元素,你應(yīng)該這么做:
for?(i?<-?Array(1,2,3,4))?println(i)
Array(1,2,3,4).foreach{print(_)}
如果嘗試將這些元素轉(zhuǎn)換為新的集合,應(yīng)該使用for/yield表達(dá)式或者map方法:
scala>?for?(i?<-?Array(1,2,3))?yield?i?*?2?
res0:?Array[Int]?=?Array(2,?4,?6)
scala>?Array(1,2,3).map(_?*?2)
res1:?Array[Int]?=?Array(2,?4,?6)
比如過(guò)濾出一個(gè)集合中元素小于4的集合,你可以使用filter方法:
scala> val nums = List(1,2,3,4,5).filter(_ < 4)
res2: nums: List[Int] = List(1, 2, 3)
二、Scala Windows運(yùn)行環(huán)境配置及使用
1.?實(shí)現(xiàn)步驟:
1. 雙擊運(yùn)行安裝。
2. 添加scala安裝目錄的bin目錄路徑到系統(tǒng)環(huán)境變量中。?
3. 通過(guò)cmd命令窗口,輸入scala?。
2.?交互模式
可以通過(guò)命令行直接輸入scala命令,比如:
?
?3. 編譯模式
也可以先編寫? ***.scala文件,通過(guò)執(zhí)行文件來(lái)執(zhí)行命令,比如:
先在e盤下創(chuàng)建一個(gè)hello.scala文件。
print("hello scala");
然后通過(guò)cmd執(zhí)行:
也可以先生成 .scala文件,再編譯生成? .class 文件,再執(zhí)行。
在e盤下,創(chuàng)建demo01.scala文件,內(nèi)容如下:
object Person{
def main(args: Array[String]): Unit = {
println("hello scala hello world~")
}
}
在e盤路徑下進(jìn)入cmd命令窗口。
然后執(zhí)行:scalac demo01.scala
執(zhí)行完后會(huì)發(fā)現(xiàn)在e盤下多出了對(duì)應(yīng)的class文件。
?
調(diào)用執(zhí)行:scala Person?
4.?使用IDE來(lái)開(kāi)發(fā)Scala
解壓即可使用?。
?
創(chuàng)建 scala project。
工程創(chuàng)建完畢后,創(chuàng)建scala object?。
編寫代碼。
?
運(yùn)行得到結(jié)果。?
三、Eclipse介紹
1.?概述
?官方網(wǎng)址: Eclipse Downloads | The Eclipse Foundation
Eclipse是著名的跨平臺(tái)的自由集成開(kāi)發(fā)環(huán)境(IDE)。主要用來(lái)Java語(yǔ)言開(kāi)發(fā),也可以通過(guò)安裝不同的插件來(lái)支持不同的計(jì)算機(jī)語(yǔ)言,比如C++和Python等開(kāi)發(fā)工具。
注:集成開(kāi)發(fā)環(huán)境(IDE,Integrated Development Environment )是用于提供程序開(kāi)發(fā)環(huán)境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面等工具。集成了代碼編寫功能、分析功能、編譯功能、調(diào)試功能等一體化的開(kāi)發(fā)軟件服務(wù)套。所有具備這一特性的軟件或者軟件套(組)都可以叫集成開(kāi)發(fā)環(huán)境。
2.?常見(jiàn)的IDE
1. Microsoft Visual Studio
Microsoft Visual Studio(簡(jiǎn)稱VS)是微軟公司的開(kāi)發(fā)工具包系列產(chǎn)品。VS是一個(gè)基本完整的開(kāi)發(fā)工具集,它包括了整個(gè)軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開(kāi)發(fā)環(huán)境(IDE)等等。所寫的目標(biāo)代碼適用于微軟支持的所有平臺(tái).如果你在做Windows的應(yīng)用開(kāi)發(fā),那么使用Microsoft自己的開(kāi)發(fā)工具肯定沒(méi)錯(cuò)。Visual Studio產(chǎn)品包含C++、C#和VB.NET語(yǔ)言。還可以為Windows x86、Windows RT和Windows手機(jī)做開(kāi)發(fā)。最新版被優(yōu)化為可用于觸摸,方便使用Microsoft Surface平板進(jìn)行編程的開(kāi)發(fā)者。開(kāi)發(fā)者需要付費(fèi)購(gòu)買。
2. Eclipse
Eclipse是著名的跨平臺(tái)開(kāi)源集成開(kāi)發(fā)環(huán)境(IDE)。最初主要用來(lái)Java語(yǔ)言開(kāi)發(fā),亦有人通過(guò)插件使其作為C++、Python、PHP等其他語(yǔ)言的開(kāi)發(fā)工具。Eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持,使得Eclipse擁有較佳的靈活性,所以許多軟件開(kāi)發(fā)商以Eclipse為框架開(kāi)發(fā)自己的IDE。
3. IDEA
全稱 IntelliJ IDEA,是java編程語(yǔ)言開(kāi)發(fā)的集成環(huán)境。IntelliJ在業(yè)界被公認(rèn)為最好的java開(kāi)發(fā)工具,尤其在智能代碼助手、代碼自動(dòng)提示、重構(gòu)、J2EE支持、各類版本工具(git、svn等)、JUnit、CVS整合、代碼分析、創(chuàng)新的GUI設(shè)計(jì)等方面的功能可以說(shuō)是超常的。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-648399.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-648399.html
到了這里,關(guān)于大數(shù)據(jù)課程J1——Scala的概述的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!