可伸缩的语言是一种多范式的编程语言,一种类似Java的编程 ,设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala是在JVM上运行。
Scala编程语言近来抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式和函数式的编程风格。Christopher Diggins认为:
不太久之前编程语言还可以毫无疑义地归类成“命令式”或者“函数式”。Scala代表了一个新的语言品种,它抹平了这些人为划分的界限。
根据David Rupp在博客中的说法,Scala可能是下下一代Java。这么高的评价让人不禁想看看它到底是什么东西。
Scala有几项关键特性表明了它的面向对象的本质。例如,Scala中的每个值都是一个对象,包括基本数据类型(即布尔值、数字等)在内,连函数也是对象。另外,类可以被子类化,而且Scala还提供了基于mixin的组合(mixin-based composition)。
与只支持单继承的语言相比,Scala具有更广泛意义上的类重用。Scala允许定义新类的时候重用“一个类中新增的成员定义(即相较于其父类的差异之处)”。Scala称之为mixin类组合。
Scala还包含了若干函数式语言的关键概念,包括高阶函数(Higher-ORDEr Function)、局部套用(Currying)、嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。
Scala是静态类型的,这就允许它提供泛型类、内部类、甚至多态方法(Polymorphic Method)。另外值得一提的是,Scala被特意设计成能够与Java和.NET互操作。Scala当前版本还不能在.NET上运行(虽然上一版可以-_-b),但按照计划将来可以在.NET上运行。
Scala可以与Java互操作。它用scalac这个编译器把源文件编译成Java的class文件(即在JVM上运行的字节码)。你可以从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的代码。用David Rupp的话来说,
发布于 2017-10-21 00:47:13 | 167 次阅读
发布于 2017-07-28 06:49:41 | 161 次阅读
发布于 2017-06-16 02:57:16 | 177 次阅读
发布于 2017-04-27 22:51:05 | 188 次阅读
发布于 2016-12-12 00:33:09 | 206 次阅读
发布于 2016-11-04 00:19:40 | 205 次阅读
发布于 2015-10-07 00:18:44 | 244 次阅读
发布于 2015-09-20 01:02:28 | 230 次阅读
发布于 2015-07-20 00:17:54 | 228 次阅读
发布于 2015-06-24 00:58:14 | 192 次阅读
发布于 2015-05-09 23:52:25 | 221 次阅读
发布于 2015-03-09 00:25:58 | 246 次阅读
发布于 2015-02-24 00:54:46 | 519 次阅读
发布于 2014-12-25 23:52:19 | 225 次阅读
发布于 2014-07-27 00:23:54 | 203 次阅读
发布于 2014-06-30 23:23:14 | 247 次阅读