From Wikipedia, the free encyclopedia
Scala係一隻多範式嘅編程語言,設計初衷係要整合物件導向編程同埋函數式編程嘅各種特性。
編程範式 | 多範型:函數式、物件導向、指令式 |
---|---|
設計者 | Martin Odersky |
編程員 | 洛桑聯邦理工學院編程方法實驗室 |
第一次出現 | 2004年1月20號 |
穩定版本 | 3.0.0
/ 2021年5月14號 |
類型系統 | 靜態、強、類型推斷、結構化 |
實作語言 | Scala |
系統平台 | JVM、JavaScript[1]、LLVM(實驗性)[2] |
軟件授權 | 3句版BSD授權條款[3] |
副檔名 | .scala, .sc |
網站 | www |
啟發語言 | |
Eiffel、Erlang、Haskell、[4] Java、[5]Lisp、[6] Pizza、[7] Standard ML、[5]OCaml、[5]Scheme、[5]Smalltalk、Oz | |
影響語言 | |
Ceylon、Fantom、F#、Kotlin、Lasso、Red、Swift[未記出處或冇根據] | |
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。
Lift係開源嘅Web應用框架,目的係提供類似Ruby on Rails嘅嘢。因為Lift用咗Scala,所以Lift嘅應用程式可以用到目前所有嘅Java庫同埋Web容器。
下面係用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)'
下面係可以畀你試用Scala嘅網站:
注意:預設嘅Scala庫SUnit已經喺2.8.0版入面整走咗。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.