Scala是可擴(kuò)展語言的縮寫,是一種混合功能編程語言。 它由Martin Odersky創(chuàng)建。 Scala順利整合面向?qū)ο蠛秃瘮?shù)式語言的功能。 Scala被編譯后在Java虛擬機(jī)上運(yùn)行。 許多現(xiàn)有公司依靠Java進(jìn)行關(guān)鍵業(yè)務(wù)應(yīng)用轉(zhuǎn)向或正在轉(zhuǎn)向Scala,以提高其開發(fā)生產(chǎn)力,應(yīng)用程序可擴(kuò)展性和整體可靠性。
- Scala是面向?qū)ο笳Z言
Scala是一種純粹的面向?qū)ο笳Z言,每一個(gè)值都是一個(gè)對(duì)象。 對(duì)象的類型和行為由類和特征描述,這將在后面的章節(jié)中進(jìn)行說明。
類通過子類化和基于靈活的基于混合組合機(jī)制進(jìn)行擴(kuò)展,作為多重繼承的干凈替代。 - Scala是函數(shù)式編程語言
Scala也是一種函數(shù)式語言,每個(gè)函數(shù)都是一個(gè)值,每個(gè)值都是一個(gè)對(duì)象,所以每個(gè)函數(shù)都是一個(gè)對(duì)象。
Scala提供了一個(gè)輕量級(jí)的語法來定義匿名函數(shù),它支持高階函數(shù),它允許函數(shù)嵌套,并支持currying。 - Scala是靜態(tài)類型的
Scala與其他靜態(tài)類型語言(C,Pascal,Rust等)不同,它不提供冗余類型的信息。 在大多數(shù)情況下,您不需要指定類型,當(dāng)然減少了不必的重復(fù)。 - Scala運(yùn)行在JVM上
Scala代碼被編譯成由Java虛擬機(jī)(JVM)執(zhí)行的Java字節(jié)代碼,這意味著Scala和Java具有通用的運(yùn)行時(shí)平臺(tái)。因此,可以輕松地從Java遷移到Scala。
Scala編譯器將Scala代碼編譯成Java字節(jié)代碼,然后可以通過scala
命令執(zhí)行。scala
命令類似于java命令,因?yàn)樗鼒?zhí)行編譯Scala代碼。 - Scala可以執(zhí)行Java代碼
Scala能夠使用Java SDK的所有類以及自定義Java類,或您最喜歡的Java開源項(xiàng)目。 - Scala可以做并發(fā)和同步處理
Scala允許您以有效的方式表達(dá)一般的編程模式。它減少了線路數(shù)量,并幫助程序員以類型安全的方式進(jìn)行編碼。它允許您以不變的方式編寫代碼,這使得應(yīng)用并發(fā)和并行性(Synchronize)變得容易。
Scala與Java
Scala具有與Java完全不同的一組功能,其中的一些如下
- 所有類型都是對(duì)象
- 類型推斷
- 嵌套函數(shù)
- 函數(shù)是對(duì)象
- 域特定語言(DSL)支持
- 性狀
- 閉包
- 并發(fā)支持靈感來自Erlang