求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

Scala檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
  Scala

Scala是一門多範式的編程語言,一種類似java的編程語言,設計初衷是實現可伸縮的語言、並集成面向對象編程和函數式編程的各種特性。

簡介

Scala編程語言抓住了很多開發者的眼球。如果你粗略瀏覽Scala的網站,你會覺得Scala是一種純粹的面向對象編程語言,而又無縫地結合了命令式編程和函數式編程風格。Christopher Diggins認為:不太久之前編程語言還可以毫無疑意地歸類成「命令式」或者「函數式」或者「面向對象」。Scala代表了一個新的語言品種,它抹平了這些人為劃分的界限。根據David Rupp在博客中的說法,Scala可能是下一代Java。這麼高的評價讓人不禁想看看它到底是什麼東西。Scala有幾項關鍵特性表明了它的面向對象的本質。例如,Scala中的每個值都是一個對象,包括基本數據類型(即布爾值、數字等)在內,連函數也是對象。另外,類可以被子類化,而且Scala還提供了基於mixin的組合(mixin-based composition)。 與只支持單繼承的語言相比,Scala具有更廣泛意義上的類重用。Scala允許定義新類的時候重用「一個類中新增的成員定義(即相較於其父類的差異之處)」。Scala稱之為mixin類組合。Scala還包含了若干函數式語言的關鍵概念,包括高階函數(Higher-Order Function)、柯里化(Currying)、嵌套函數(Nested Function)、序列解讀(Sequence Comprehensions)等等。Scala是靜態類型的,這就允許它提供泛型類、內部類、甚至多態方法(Polymorphic Method)。另外值得一提的是,Scala被特意設計成能夠與Java和.NET互操作。Scala當前版本還不能在.NET上運行(雖然上一版可以-_-b),但按照計劃將來可以在.NET上運行

評價

Scala可以與Java互操作。它用scalac這個編譯器把源文件編譯成Java的class文件(即在JVM上運行的字節碼)。你可以從Scala中調用所有的Java類庫,也同樣可以從Java應用程序中調用Scala的代碼。用David Rupp的話來說,它也可以訪問現存的數之不盡的Java類庫,這讓(潛在地)遷移到Scala更加容易。這讓Scala得以使用為Java1.4、5.0或者6.0編寫的巨量的Java類庫和框架,Scala會經常性地針對這幾個版本的Java進行測試。Scala可能也可以在更早版本的Java上運行,但沒有經過正式的測試。Scala以BSD許可發布,並且數年前就已經被認為相當穩定了。聯邦理工學院洛桑(EPFL)的Martin Odersky於2001年基於Funnel的工作開始設計Scala。Funnel是把函數式編程思想和Petri網相結合的一種編程語言。Odersky先前的工作是Generic Java和javac(Sun Java編譯器)。Java平台的Scala於2003年底/2004年初發布。.NET平台的Scala發布於2004年6月。該語言第二個版本,v2.0,發布於2006年3月。[1]

參考文獻

  1. Scala搜狗