时间:2015-3-20来源:本站原创作者:佚名
scala允许定义新类的时候重用“一个类中新增的成员定义(即相较于其父类的差异之处)”

scala有几项关键特性表明了它的面向对象的本质例如,scala中的每个值都是一个对象,包括基本数据类型(即布尔值、数字等)在内,连函数也是对象另外,类可以被子类化,而且scala还提供了基于mixin的组合(mixin-based composition)

首先,scala 可编译为 java 字节码,这意味着它在 jvm 上运行除了允许继续利用丰富的 java 开源生态系统之外,scala 还可以集成到现有的 it 环境中,无需进行迁移

strategy(策略模式)

singleton(单体模式)

最后,scala 由 martin odersky 开发,他可能是 java 社区中研究 pizza 和 gj 语言的最著名的人,gj 是 java 5 泛型的工作原型而且,它给人一种 “严肃” 的感觉;该语言并不是一时兴起而创建的,它也不会以同样的方式被抛弃

scala 是一种函数对象混合的语言,具有一些强大的优点:

与许多最近开始在 java 平台上占有一席之地的动态语言不同,scala 是静态类型的,这就允许它提供泛型类、内部类、甚至多态方法(polymorphic method),正如 java 代码一样但是,与 java 平台不同,scala 大量利用了类型推断(type inferencing),这意味着,编译器深入分析代码以确定特定值的类型,无需编程人员干预类型推断需要较少的冗余类型代码另外值得一提的是,scala被特意设计成能够与java和.net互操作scala当前版本还不能在.net上运行(虽然上一版可以-_-b),但按照计划将来可以在.net上运行

根据david rupp在博客中的说法,scala可能是下下一代java这么高的评价让人不禁想看看它到底是什么东西

一种可伸缩语言

scala编程语言近来抓住了很多开发者的眼球如果你粗略浏览scala的网站,你会觉得scala是一种纯粹的面向对象编程语言,而又无缝地结合了命令式和函数式的编程风格

christopher diggins认为:不太久之前编程语言还可以毫无疑义地归类成“命令式”或者“函数式”scala代表了一个新的语言品种,它抹平了这些人为划分的界限

factory(工厂模式)

scala中常用的一些设计模式:

其次,scala 基于 haskell 和 ml 的函数原则,大量借鉴了 java 程序员钟爱的面向对象概念因此,它可以将两个领域的优势混合在一起,从而提供了显著的优点,而且不会失去我们一直依赖的熟悉的技术

[1] [2] 下一页

scala还包含了若干函数式语言的关键概念,包括高阶函数(higher-order function)、局部套用(currying)、嵌套函数(nested function)、序列解读(sequence comprehensions)等等

decorator(装饰模式)

vistor(访问者模式)

scala 的名称表明,它还是一种高度可伸缩的语言

与只支持单继承的语言相比,scala具有更广泛意义上的类重用scala称之为mixin类组合

















































































夏季白癜风发病原因
转载请注明原文网址:http://www.gzdatangtv.com/cksc/96.html
------分隔线----------------------------