什么是Scala
Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性 。
Scala语言来自于(可伸缩的)既可以写一些小的脚本,又可以写一写复杂的服务器端的程序 。
【Scala:多范式的编程语言】Scala是一门纯正的面向对象语言,具有OO特征 。
Scala是一门函数式语言,可以用函数式思想来编写代码
Scala是构建于JVM之上的,与java可以无缝互操作 。
主要特性:
文章插图
1、面向对象编程:Scala是一种纯面向对象的语言,每一个值都是对象 。对象的数据类型以及行为由类和特质描述 。类抽象机制的扩展有两种途径 。一种途径是子类继承,另一种途径是灵活的混入机制 。这两种途径能避免多重继承的种种问题 。
2、函数式编程:Scala也是一种函数式语言,其函数也能当成值来使用 。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化 。Scala的case class及其内置的模式匹配相当于函数式编程语言中常用的代数类型 。更进一步,程序员可以利用Scala的模式匹配,编写类似正则表达式的代码处理XML数据 。ssl证书申请
3、静态类型:Scala语言具有类型系统,支持相当多的特性:泛型类,协变和逆变,标注,类型参数的上下限约束,把类别和抽象类型作为对象成员,复合类型,引用自己时显式指定类型,视图,多态方法 。
4、扩展性:Scala的设计承认一个事实,即在实践中,某个领域特定的应用程序开发往往需要特定于该领域的语言扩展 。Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构:任何方法可用作前缀或后缀操作符;可以根据预期类型自动构造闭包 。联合使用以上两个特性,使你可以定义新的语句而无须扩展语法也无须使用宏之类的元编程特性 。
5、并发性:Scala使用Actor作为其并发模型,Actor是类似线程的实体,有一个邮箱发收消息 。Actor可以复用线程,因此可以在程序中可以使用数百万个Actor,而线程只能创建数千个 。在2.10之后的版本中,使用Akka作为其默认Actor实现 。
Scala的函数式风格
Scala的魅力之一就是其函数式编程风格实现 。如果把上面介绍的面向对象特性看成是Scala的“寒冰掌”,让你感受到了迥异于Java实现的特性,那么,Scala强大而魔幻的函数式特性,就是其另一大杀招“火焰刀”,喷发的是无坚不摧的怒焰之火 。
集合类型
Scala常用集合类型有Array、Set、Map、Tuple和List等 。Scala提供了可变()与不可变()的集合类型版本,多线程应用中应该使用不可变版本,这很容易理解 。
Array:数组是可变的同类对象序列;
Set:无序不重复集合类型,有可变和不可变实现;
Map:键值对的映射,有可变和不可变实现;
Tuple:可以包含不同类元素,不可变实现;
List:Scala的列表是不可变实现的同类对象序列,因应函数式编程特性的需要 。
List大概是日常开发中使用最多的集合类型了 。
这些集合类型包含了许多高阶函数,如:map、find、、fold、等等,构建出浓郁的函数式风格用法 。
- 30w的灯10小时多少电
- 动漫里面人气和主角差不多的十大“星爷级龙套”,你知道几个? 盘点柯南世界之最的龙套
- 中国肥胖,中国肥胖人概率有多少?
- 冻鸡翅可以放多久,冷冻鸡翅不放冰箱里能放多久
- 董鄂妃到底有多大的魅力?竟然让皇帝看破红尘
- 多名乘客呼吸困难!韩亚航空一客机舱门被打开,有多危险? 世界十大危险机场视频
- 人口黑市多恐怖?4000多万人沦为现代奴隶,当奴工做性奴被割器官 中国十大黑市
- 这么多世界之最竟然都在山西,少看一个都很遗憾!#山西dou知道 中国之最之多少
- 味多美团购
- 上海蹦极多少钱