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语言主要应用领域
cala运行于jvm之上,并且它可以访问任何的java类库并且与java框架进行互操作,scala也大量重用了java类型和类库。
大数据的开发语言是scala的原因:
1:大数据的本身是计算数据,而scala即有面向对象组织项目工程的能力,又有计算数据的功能。
2:现在大数据事实上的计算标准框架spark,它是用scala开发的,因为计算数据,scala它是函数式编程,它实现算法非常简洁优雅。
例:kafka,它是一个消息中间件,如果外部数据要流进大数据中心,我们一般都要用kafka作适配器,那如果大数据中心的数据流到外部,也是用kafka(如spark计算的数据要交给hbase或mysql,期间我们都会用kafka),很多的大数据组件都是用的scala编写的,所以,如果你想成为一个较高级的大数据开发高手,你一定要掌握scala。
东方网力以视频为核心赋能智能安防
华林科纳共注入BOE的化学实验报告
OPPO Find X2现身官方宣传片 该机采用打孔曲屏设计
MediaTek 推出天玑 6000 系列移动芯片,面向主流 5G 终端
电弧故障保护断路器的应用有哪些
scala语言主要应用领域详解
智慧公安大数据分析系统开发公安信息管理平台搭建
S7-200与S7-300之间的通讯方式图文详解
找不到蓝牙Beacon完成你的设计?来SKYLAB了解一下
首例骨科机器人辅助下的骨科手术成功,我国手术机器人技术的新突破
希捷科技最新推出业界首款16TB银河企业级硬盘
Qorvo宣布推出两款Wi-Fi 6E前端模块
snmp及编程实现
S/HS固态继电器,S/HS固态继电器原理及应用
磁翻板液位计的常见故障分析
考勤这件小事,为什么总是做不好?但眼考勤云来解决考勤问题
Ruff物联网技术可以实现智慧农业吗
日本的出口长期限制将影响智能手机生产
高通推出骁龙4系列平台:全民5G时代来了
利用源表进行太阳能电池特性测试