Scala是一種純面向對象的語言,每一個值都是對象。對象的數據類型以及行爲由類和特質描述。程序員
類抽象機制的擴展有兩種途徑:一種途徑是子類繼承,另外一種途徑是靈活的混入機制。這兩種途徑能避免多重繼承的種種問題。正則表達式
Scala也是一種函數式語言,其函數也能當成值來使用。Scala提供了輕量級的語法用以定義匿名函數,支持高階函數,容許嵌套多層函數,並支持柯里化。Scala的case class及其內置的模式匹配至關於函數式編程語言中經常使用的代數類型。編程
更進一步,程序員能夠利用Scala的模式匹配,編寫相似正則表達式的代碼處理XML數據。後端
Scala具有類型系統,經過編譯時檢查,保證代碼的安全性和一致性。類型系統具體支持如下特性:安全
Scala的設計秉承一項事實,即在實踐中,某個領域特定的應用程序開發每每須要特定於該領域的語言擴展。Scala提供了許多獨特的語言機制,能夠以庫的形式輕易無縫添加新的語言結構:服務器
Scala使用Actor做爲其併發模型,Actor是相似線程的實體,經過郵箱發收消息。Actor能夠複用線程,所以能夠在程序中可使用數百萬個Actor,而線程只能建立數千個。在2.10以後的版本中,使用Akka做爲其默認Actor實現。閉包