❶ windows下怎麼退出scala命令行
在命令行上啟動scala輸入scala的expression這種方式輸入單個expression的時候很方便,但是如果要輸入一個函數,甚至一個for循法就很麻煩。Idea又太大型。
❷ Scala這個有知道的嗎,怎麼樣啊
Scala是一門多範式語言,一般常用的範式有:命令式 和 函數式,由於Scala是一門多範式語言,所以通俗來說我們可以說Scala是一門命令式編程語言同時也是函數式編程語言。
命令式:命令式是植根於馮·諾依曼體系的,一個命令式程序就是一個馮·諾依曼機的指令序列,給機器提供一條又一條的命令序列讓其原封不動的執行。通俗來說就是按照指令順序一步一步執行。
函數式:又稱泛函編程,它將計算機的計算視為數據中的函數計算。函數式編程最重要的基礎是λ(lambda)演算,λ演算對函數式編程語言有著巨大的影響。典型的函數式語言包括Erlang和Lisp等。
為什麼要用函數式:
目前來說CPU的性能發展大體上是在同等面積上集成更多的晶體管等集成電路,隨著納米技術的不斷提高,CPU能夠集成的計算單元也越來越多,但終歸是有上限的。所以在之後,單核的發展逐漸走向了多核的發展,以多核來達到性能的提升。
目前計算機的CPU基本上都是多核CPU,在使用命令式編程的時候就設涉及到多線程之間的狀態共享,需要鎖機制實現並發的控制,而鎖機制雖然保證了安全性,但是卻對性能來說是一個阻礙。
而函數式編程不會再多個線程之間共享狀態,不需要用鎖機制,可以更好的並行處理,充分利用多核CPU的並行處理能力。
如,電信行業多數使用Erlang來進行開發,就是看中了函數式編程的並行處理能力。
Scala的特點
Scala是面向對象的:Scala是一個純面向對象語言,在某種意義上來講所有數值都是對象。對象的類型和行為是由class和trait來描述的。Class的抽象可由子類化和一種靈活的基於mixin的組合機制(它可作為多重繼承的簡單替代方案)來擴展。
Scala是函數式的: Scala還是一個函數式語言,在某種意義上來講所有函數都是數值。Scala為定義匿名函數提供了一種輕量級的語法,它支持高階(higher- order)函數、允許函數嵌套、支持局部套用(currying)。Scala的case類及其內置支持的模式匹配模型代數類型在許多函數式編程語言中 都被使用。
Scala是靜態類型的:Scala配備了一套富有表現力的類型系統,該抽象概念以一種安全的和一致的方式被使用。
Scala是可擴展的:Scala的設計承認了實踐事實,領域特定應用開發通常需要領域特定語言擴展。Scala提供了一個獨特的語言組合機制,這可以更加容易地以類庫的形式增加新的語言結構:兩者結合使用可方便地定義新語句,無需擴展語法,也無需使用類似宏的元編程工具。
任何方式可以被用作中綴(infix)或後綴(postfix)操作符
閉包按照所期望的類型(目標類型)自動地被構造
Scala可與Java和.NET進行互操作:Scala 設計時就考慮了與流行編程環境良好交互,如Java 2運行時環境(JRE)和 .NET框架(CLR)。特別是與主流面向對象語言,如Java和C#盡量無縫交互。Scala有像Java和C#一樣的編譯模型(獨立編譯,動態裝載 類),允許訪問成千上萬的高質量類庫。