?Scala是基于JVM的編程語言。Java是運行在jvm上的編程語言,java源代碼通過jvm被編譯成class文件,然后在os上運行class文件。Scala是運行在jvm上的編程語言,scala源代碼通過jvm被編譯成class文件,然后在os上運行class文件
scala介紹Scala完全面向對象相對于Java而言,Scala的代碼更為精簡(減低犯錯),而且功能更為廣泛(Scala其實是ScalableLanguage的簡稱,意為可擴展的語言),許多Scala的特性和語法都是針對Java的不足和弱點來設計的。Scala的特點是有很多函數程式語言的特性(例如ML,Miranda,Scheme,Haskell),譬如惰性求值,listcomprehension,typeinference,anonymousfunction,patternmatching等等,同時也包含Object-Oriented的特性(OO能與FP混合使用是Scala的亮點)。此外,許多相似于高級編程語言的語法也滲入其中(例如Python),不僅提高了Scala代碼的可讀性,維護、修改起來也較為省時省力。Scala與Java語法上的明顯差異有:不需要分號結尾類型定義開頭需大寫(與Haskell相同)函數定義需?def?開頭(與Python、Ruby相同)return?可以省略scala安裝解壓設置PATH即可,前提是需要先安裝JDK,不在過多描述。
Effective Scala格式化代碼格式化的規范并不重要,只要它們實用。它的定義形式沒有先天的好與壞,幾乎每個人都有自己的偏好。然而,對于一貫地采用同一格式化規則的總會增加可讀性。已經熟悉某種特定風格的讀者不必非要去掌握另一套當地習慣,或譯解另一個角落里的語言語法。這對Scala來說也特別重要,因為它的語法高度的重疊。一個例子是方法調用:方法調用可以用“.”后邊跟圓括號,或不使用“.”,后邊用空格加不帶圓括號(針對空元或一元方法)方式調用。此外,不同風格的方法調用揭露了它們在語法上不同的分歧(ambiguities)。
說明大綱1)一等公民怎么體現2)表達式3)函數與方法4)傳值與傳名—scala中支持的參數傳遞方式5)高階函數與柯里化6)偏應用函數7)偏函數8)一些謎題與細節.