【導讀:數據是二十一世紀的石油,蘊含巨大價值,這是·情報通·大數據技術系列第[86]篇文章,歡迎閱讀和收藏】
1 基本概念
Scala 是基於 Java 虛擬機即 JVM 的一門編程語言。所有 Scala 的代碼,都需要經過編譯為字節碼,然後交由 Java 虛擬機來運行。 Scala 可以任意調用 Java 的代碼, Scala 源代碼被編譯成 Java 字節碼,並可以調用現有的 Java 類庫。
2 術語解釋
Scala 是一門多範式( multi-paradigm )的編程語言,設計初衷是要集成面向對象編程和函數式編程的各種特性。
3 Scala 特性
面向對象特性
Scala 是一種純面向對象的語言,每個值都是對象。對象的數據類型以及行為由類和特質描述。
類抽象機制的擴展有兩種途徑:一種途徑是子類繼承,另一種途徑是靈活的混入機制。這兩種途徑能避免多重繼承的種種問題
函數式編程
Scala 也是一種函數式語言,其函數也能當成值來使用。 Scala 提供了輕量級的語法用以定義匿名函數,支持高階函數,允許嵌套多層函數,並支持柯里化。 Scala 的 case class 及其內置的模式匹配相當於函數式編程語言中常用的代數類型。
更進一步,程序員可以利用 Scala 的模式匹配,編寫類似正則表達式的代碼處理 XML 數據。
靜態類型
Scala 具備類型系統,通過編譯時檢查,保證代碼的安全性和一致性。類型系統具體支持以下特性:
(1) 泛型類
(2) 協變和逆變
(3) 標註
(4) 類型參數的上下限約束
(5) 把類別和抽象類型作為對象成員
(6) 複合類型
(7) 引用自己時顯式指定類型
(8) 視圖
(9) 多態方法
擴展性
Scala 的設計秉承一項事實,即在實踐中,某個領域特定的應用程序開發往往需要特定於該領域的語言擴展。 Scala 提供了許多獨特的語言機制,可以以庫的形式輕易無縫添加新的語言結構:
(1) 任何方法可用作前綴或後綴操作符
(2) 可以根據預期類型自動構造閉包。
併發性
Scala 使用 Actor 作為其併發模型, Actor 是類似線程的實體,通過郵箱發收消息。 Actor 可以複用線程,因此可以在程序中可以使用數百萬個 Actor, 而線程只能創建數千個。在 2.10 之後的版本中,使用 Akka 作為其默認 Actor 實現。
閱讀更多 情報通 的文章