天天看點

Scala程式設計語言

Scala  程式設計語言

  Scala是一門現代的多範式程式設計語言,志在以簡練、優雅和類型安全的方式來表達常用程式設計模式。它平滑地內建了面向對象和函數語言的特性。Scala程式設計語言分别有:

   1.Scala是一個純面向對象語言,就是從某種意義上來講所有數值都是對象。也就是對象的類型和行為是由class和trait來描述的,class的抽象可由于類化和一種靈活的基于mixin的組合機制。(它可作為多重繼承的的簡單替代方案)來擴充。 2.Scala是函數式的:Scala還是一個函數是語言,在某種意義來講所有函數都是數值。Scala為定義函數提供了一種輕量級的文法,它支援高階(higher-order ) 函數、允許函數嵌套 、支援局部套用(currying)。Scala的case類及其内置支援的模式比對模型、代數類型在許多函數式程式設計語言中都被使用。

3.Scala是靜态類型的:Scala配備了一套富有表現力的類型系統,該抽象概念以一種安全的和一緻方式被使用。

4.Scala是可擴充的:Scala的設計承認了實踐的事實,領域特定應用開發通常需要領域特定語言擴充。Scala提提供了一個獨特語言組合機制,這樣可以更加容易地與類庫的形式增加新的語言結構:

      (1)任何方式可以被用作中綴(infix)或字尾(postfix)操作符。

    (2)閉包按照所期望的類型(目标類型)自動地構造。

這樣能夠使兩者之間相結合使用可以友善地定義新語句,無需擴充語

法,也無需要使用類似宏的元程式設計工具。

5.Scala可與Java和NET進行互操作:Scala設計時就考慮了與流行程式設計環境裡良好的互動,如:Java 2運作時自己年紀環境(  JRE )和(NET)架構,  (CLR )。特别是與主流面向對象而言。如:Java和C#盡量無縫互動。Scala有像Java和C#一樣的編譯模型(獨立編譯、動态裝載類)也就是允許通路成千上萬的高品質類庫。

在以上Scala程式設計語言的分析,與平常所用的Java的用法是有所相同的,隻是在大量的函數功能已經被引入Scala的語言中(也就是大大超出了Java的列出本文的範圍),還添加了Java中沒有的許多功能,比如:操作符重載(它完全不像Java開發人員想象的那樣),具有“更高和更低的類型邊界”的泛型、視圖等。

與其它功能相比,這些功能确實使Scala在處理特定任務方面極其強大,就像處理或生成 XML 。

 Scala還可以和Java互動操作,它是一種支援元件操作的語言,也可以從Java的應用程式中調用Scala的代碼,就是說完全可以把Java的代碼全部遷移到Scala 中操作。在應用Scala的程式操作中,它的語言功能和函數功能都超出了Java的所需,也就是說軟體應該由可重用的部件構造而成,Scala是一種程式設計語言,分别來自面向對象和函數式兩種不同風格關鍵概念;包括有:面向對象風格、函數式風格、更高層的并發模型。

 Scala把Erlang風格的基于actor并法帶進了JVM。開發者現在可以利用Scala的actor模型在JVM上設計具伸縮性的并發應用程式,它會自動獲得多核心處理器帶來的優勢,而不必依照複雜的Java線程模型來編寫程式。

  輕量級函數文法 :a.高階  

                   b.嵌套 

                   c.局部套用(Currying)  

                   d.匿名與XML內建    

                   a. 可在Scala程式中直接書寫XML   

                   b. 可将XML轉化成Scala類與Java無縫地互操作       

繼續閱讀