Scala
From Wikipedia, the free encyclopedia
Remove ads
Scala係一隻多範式嘅編程語言,設計初衷係要整合物件導向編程同埋函數式編程嘅各種特性。
Remove ads
平台同埋許可證
Scala運行喺Java平台(Java虛擬機),仲兼容依家嘅Java程式。佢仲可以喺CLDC配置嘅Java ME入面運行。曾經有過另一.NET平台嘅實現[8],不過該版本已被放棄。[9]
Scala嘅編譯模型(獨立編譯,動態類加載)同Java同埋C#一樣,所以Scala代碼可以用Java類庫(要實現.NET就要用.NET類庫)。
史
洛桑聯邦理工學院嘅Martin Odersky喺2001年基於Funnel嘅工作開始設計Scala。Funnel係將函數式編程思想同埋佩特里網相結合嘅一隻編程語言。[11] Odersky之前喺Java泛型同埋javac做嘢。Java平台嘅Scala喺2003年底/2004年初發布。[11].NET平台嘅Scala喺2004年6月發佈。[7][11][12]呢隻語言第二個版本,v2.0,喺2006年3月發佈。[7]
Scala 2.8嘅特性包括重新寫過嘅Scala容器庫、命名參數同埋默認參數、包對象,仲有延續性。[13]
2012年1月,出咗版本2.9.1。
2012年4月,出咗版本2.9.2。
用Scala嘅軟件
用Scala嘅框架
Lift係開源嘅Web應用框架,目的係提供類似Ruby on Rails嘅嘢。因為Lift用咗Scala,所以Lift嘅應用程式可以用到目前所有嘅Java庫同埋Web容器。
Hello World例子
下面係用Scala編寫嘅典型Hello World程式:
object HelloWorld extends App {
println("Hello, world!")
}
或者
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
如果呢個程式保存咗做HelloWorld.scala文件,咁樣之後就可以用下面嘅命令行進行編譯:
> scalac HelloWorld.scala
如果要運行:
> scala -classpath . HelloWorld
呢行命令編譯同運行Java嘅「Hello World」程序非常相似。事實上,Scala嘅編譯同埋執行模型同Java係等效嘅,所以佢都可以兼容喺Java嘅構建工具,例如Ant。
直接用Scala解釋器都可以運行呢個程式,用選項-i(從文件加載代碼)同埋選項-e(如果要運行額外嘅代碼,就要實際執行HelloWorld對象嘅方法)就可以:
> scala -i HelloWorld.scala -e 'HelloWorld.main(null)'
Remove ads
試用
下面係可以畀你試用Scala嘅網站:
- ScalaTestWayback Machine嘅版面存檔備份
- ScalaCheckWayback Machine嘅版面存檔備份,類似喺Haskell嘅QuickCheckWayback Machine嘅版面存檔備份嘅庫
- specsWayback Machine嘅版面存檔備份,用喺Scala嘅行為驅動嘅開發工具庫
- JUnit
注意:預設嘅Scala庫SUnit已經喺2.8.0版入面整走咗。
書
- Programming in ScalaWayback Machine嘅版面存檔備份(ISBN 978-0-9815316-0-1) - 一本由 Martin Odersky, Lex Spoon, 同埋 Bill Venners 寫嘅 Scala 書,最啱比初學者睇。
- Beginning Scala(ISBN 978-1-4302-1989-7) - 一本由 David Pollak 寫嘅 Scala 書,主要講 Scala 嘅實際應用。
- Programming Scala(ISBN 978-1-934356-31-9) - Venkat Subramaniam 喺 Java 平台上發明咗高度可擴展、高度並發嘅應用程式。
- Programming Scala (ebook)Wayback Machine嘅版面存檔備份
參考
出面網頁
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads