0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

scala语言主要应用领域详解

姚小熊27 来源:网络整理 2018-03-07 18:08 次阅读

Scala简介

Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。

scala是纯粹的面向对象的语言。java虽然是面向对象的语言,但是它不是纯粹的,因为java的基本数据类型不是类,并且在java中还有静态成员变量和静态方法。相反,scala是纯粹面向对象的,每个值都是对象,每个操作都是方法调用。

Scala的特性

1.面向对象特性

Scala是一种纯面向对象的语言,每一个值都是对象。对象的数据类型以及行为由类和特征(Trait)描述。类抽象机制的扩展有两种途径。一种途径是子类继承,另一种途径是灵活的混入(Mixin)机制。这两种途径能避免多重继承的种种问题。

2.函数式编程

Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。Scala的CaseClass及其内置的模式匹配相当于函数式编程语言中常用的代数类型(AlgebraicType)。

更进一步,程序员可以利用Scala的模式匹配,编写类似正则表达式的代码处理XML数据。在这些情形中,顺序容器的推导式(comprehension)功能对编写公式化查询非常有用。

由于JVM不支持尾部递归,Scala也不能完全支持尾部递归优化。不过,在简单的情况下,Scala编译器可以把尾部递归优化成循环。

4.静态类型

Scala是具备类型系统,通过编译时的检查,保证代码的安全性和一致性。类型系统具体支持以下特性:

泛型类,型变注释(VarianceAnnotation),类型继承结构的上限和下限,把类别和抽象类型作为对象成员,复合类型,引用自己时显式指定类型,视图,多态方法。

5.扩展性

Scala的设计承认一个事实,即在实践中,某个领域特定的应用程序开发往往需要特定于该领域的语言扩展。Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构:

任何方法可用作前缀或后缀操作符,可以根据预期类型自动构造闭包。联合使用以上两个特性,使你可以定义新的语句而无须扩展语法也无须使用宏之类的元编程特性。

5.使用Scala的框架

Lift是一个开源的Web应用框架,旨在提供类似RubyonRails的东西。因为Lift使用了Scala,所以Lift应用程序可以使用所有的Java库和Web容器。

scala语言主要应用领域详解

scala语言主要应用领域

cala运行于JVM之上,并且它可以访问任何的java类库并且与java框架进行互操作,scala也大量重用了java类型和类库。

大数据的开发语言是Scala的原因:

1:大数据的本身是计算数据,而Scala即有面向对象组织项目工程的能力,又有计算数据的功能。

2:现在大数据事实上的计算标准框架Spark,它是用Scala开发的,因为计算数据,Scala它是函数式编程,它实现算法非常简洁优雅。

例:kafka,它是一个消息中间件,如果外部数据要流进大数据中心,我们一般都要用kafka作适配器,那如果大数据中心的数据流到外部,也是用kafka(如Spark计算的数据要交给HBASE或MySql,期间我们都会用kafka),很多的大数据组件都是用的Scala编写的,所以,如果你想成为一个较高级的大数据开发高手,你一定要掌握Scala。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • scala
    +关注

    关注

    0

    文章

    42

    浏览量

    6331
收藏 人收藏

    评论

    相关推荐

    5 月编程语言榜:C 再度暴涨,Scala 成功上位

    TIOBE 刚刚发布了 5 月编程语言排行榜。Scala 经过长时间的沉淀,本月终于进入了 TIOBE 榜单的前 20 名。Scala 是一种 JVM 上运行的函数式编程语言,可与 J
    发表于 05-08 13:17

    Scala入门到精通——第三十节 Scala脚本编程与结束语

    摘要: 本节主要内容 REPL命令行高级使用 使用Scala进行Linux脚本编程 结束语 1. REPL命令行高级使用 在使用REPL命令行时,有时候我们需要粘贴的代码比较大,而普通的粘贴可能会些
    发表于 06-26 17:44

    Linux操作系统应用领域详解

    领域仍是大势所趋!Linux操作系统主要有以下三大应用领域: 1. Linux作为企业级服务器的应用Linux系统可以为企业架构WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器
    发表于 07-12 18:24

    AD8221是什么?AD8221主要有哪些应用领域

    AD8221是什么?它有什么作用?AD8221主要有哪些特点?AD8221主要有哪些应用领域?基于AD8221的交流耦合仪用放大器该怎么去设计?
    发表于 04-14 06:05

    MCU主要有哪些应用领域?其优点是什么?

    MCU为何如此重要?MCU主要有哪些应用领域?其优点是什么?
    发表于 06-26 06:58

    plc是什么?plc有哪些应用领域

    plc是什么?plc的特点有哪些?plc的应用领域主要在哪些地方?
    发表于 07-05 07:35

    单片机主要有哪些应用领域

    单片机可以做什么?单片机主要有哪些应用领域呢?
    发表于 01-17 06:23

    单片机的主要应用领域有哪些

    单片机的应用范围十分广泛,主要应用领域有:(1) 工业控制。单片机可以构成各种工业控制系统、数据采集系统等。如数控机床、自动生产线控制、电机控制、温度控制等。(2) 仪器仪表。如智能仪器、医疗器械
    发表于 02-25 07:40

    C语言应用领域及前景怎么样?

    开发。上面仅列出了几个主要的C语言应用领域,实际上,C语言几乎可以应用到程序开发的任何领域。可见C语言
    发表于 03-03 14:14

    简单说明一下Scala语言与其优点

    Scala 是一种有趣的语言,是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行在JVM上,兼容现有的Java程序,集成面向对象编程和函数式
    发表于 10-10 09:23 6475次阅读

    计算机的主要应用领域

    本视频主要详细介绍了计算机的主要应用领域,分别是科学计算、过程检控、信息管理、辅助系统、人工智能、语言翻译。
    的头像 发表于 12-25 16:09 20.2w次阅读

    python语言应用领域

    本视频主要详细介绍了python语言应用领域,分别是桌面软件、网络编程、爬虫开发、云计算开发、人工智能、金融分析、自动化运维、科学运算等。
    的头像 发表于 12-27 15:24 1.8w次阅读

    晶振的主要应用领域有哪些?

    晶振的主要应用领域有哪些?
    的头像 发表于 07-20 17:47 4244次阅读
    晶振的<b class='flag-5'>主要</b><b class='flag-5'>应用领域</b>有哪些?

    氮化镓当前的主要应用领域

    从消费类、工业领域以及汽车领域介绍了氮化镓器件的应用技术情况,重点介绍了氮化镓当前的主要应用领域,消费类快充以及汽车领域的OBC。
    发表于 02-06 15:19 3852次阅读
    氮化镓当前的<b class='flag-5'>主要</b><b class='flag-5'>应用领域</b>

    什么是测量光幕?主要应用领域有哪些?

    什么是测量光幕?主要应用领域有哪些?
    的头像 发表于 06-24 10:15 685次阅读
    什么是测量光幕?<b class='flag-5'>主要</b><b class='flag-5'>应用领域</b>有哪些?