Scala —— 终结Java - 上海交通大学ACM班.PDFVIP

Scala —— 终结Java - 上海交通大学ACM班.PDF

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Scala —— 终结Java - 上海交通大学ACM班

Scala —— 终结Java? 5110309384 谢佳明 联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于 Funnel的工作开始设计Scala 。Funnel是把函数式编程思想和Petri 网相结合的一种编程语言。Odersky先前的工作是Generic Java和 javac (Sun Java编译器)。 Java平台的Scala于2003年底/2004年初发布。.NET平台的Scala发 布于2004年6月。该语言第二个版本,v2.0 ,发布于2006年3月。 截至2009年9月,必威体育精装版版本是版本2.7.6 。Scala 2.8预计的特 性包括重写的Scala类库(Scala collections library )、方法的命名 参数和默认参数、包对象(package object),以及Continuation. 2009年4月,Twitter宣布他们已经把大部分后端程序从Ruby 迁移到Scala,其余部分也打算要迁移。此外,Wattzon 已经公 开宣称,其整个平台都已经是基于Scala基础设施编写的。 它实在太让我印象深刻了。我甚至可以诚实地说,如果 有人在2003年把Martin Odersky,Lex Spoon 以及Bill Venners写的那本 《Programming in Scala》拿给我看了的 话,那我根本就不会再去发明Groovy 了。 Scala特性 • 面向对象特性 • 函数式编程 • 静态类型 • 扩展性 • Scala可以与Java互操作 • Scala 的框架的使用 面向对象特性 Scala是一种纯面向对象的语言,每一个值都是对象。对象的 数据类型以及行为由类和特征(Trait)描述。类抽象机制的扩展有两 种途径。一种途径是子类继承,另一种途径是灵活的混入(Mixin) 机制。这两种途径能避免多重继承的种种问题。 当我们实现接口时 • Java 程序员必须使用一个特别的转换来重用一个已知接口的实 现。在最坏的情况下,程序员必须复制粘贴同样的代码到不同 的类中去。 • 我们可以定义回调的抽象为一个Trait ,就像一个Java 接口一样, 但是我们可以实现这些Trait (或者继承的Trait )的抽象。Scala Traits 在保留分离关键点的同时给了我们按需整合行为的能力。 函数式编程 Scala也是一种函数式语言,其函数也能当成值来使用。Scala 提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌 套多层函数,并支持柯里化 。Scala 的Case Class及其内置的模式匹 配相当于函数式编程语言中常用的代数类型(Algebraic Type )。 更进一步,程序员可以利用Scala 的模式匹配,编写类似正则 表达式的代码处理XML数据。在这些情形中,顺序容器的推导式 (comprehension )功能对编写公式化查询非常有用。 由于JVM不支持尾部递归,Scala也不能完全支持尾部递归优化。 不过,在简单的情况下,Scala编译器可以把尾部递归优化成循环。 柯里化:把接受多个参数的函数变换成接受一个单一参数 (最初函数的第一个参数)的函数,并且返回接受余下的参数 且返回结果的新函数的技术。 静态类型 Scala是具备类型系统,通过编译时的检查,保证代码 的安全性和一致性。类型系统具体支持以下特性: 泛型类,型变注释(Variance Annotation ),类型继承 结构的上限和下限,把类别和抽象类型作为对象成员,复 合类型,引用自己时显式指定类型,视图,多态方法。 在必威体育精装版的基于JVM 的语言中,Scala 是为数不多的静态 类型语言,而且是最出名的一个。 Scala可以与Java互操作 它用scalac这个编译器把源文件编译成Java 的class文件 (即 在JVM上运行的字节码)。你可以从Scala 中调用所有的Java类 库,也同样可以从Java应用程序中调用Scala 的代码。用David Rupp的话来说, 它也可以访问现存的数之不尽的Java类库,这让(潜在地) 迁移到Scala更加容易。

文档评论(0)

l215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档