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)一些谜题与细节.