Scala
来源
取名来源于Scalable Language,是一门多范式的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。
Scala运行于Java平台(Java虚拟机 JVM),并兼容现有的Java程序。
Scala的编译模型(独立编译,动态类加载)与Java一样,所以Scala代码可以调用Java类库。
特性
支持的编程范式
面向对象特性
每个值都是对象,包括基本数据类型,连函数也是对象
类可以被子例化,而且Scala还提供了基于mixin的组合(mixin-based composition)
函数式编程
函数当成值来用
匿名函数
高阶函数
嵌套多层函数
柯里化
静态类型,类型系统通过编译时检查,保证代码的安全性和一致性
泛型类别
协变和逆变
标注
类型参数的上下限约束
把类别和抽象类型作为对象成员
复合类型
引用自己时显式指定类型
视图
多态方法
扩展性
任何方法可用作前缀或后缀操作符
可以根据预期类型自动构造闭包
并发性
函数式编程
函数式编程(英语:functional programming)是一种编程范式,它将电脑运算视为函数运算,并且避免使用程序状态以及易变对象。其中,λ演算(lambda calculus)为该语言最重要的基础。而且,λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。
比起指令式编程,函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。
特点
以表达式为中心
无副作用
只用纯函数来构造程序,
一个函数在执行过程中除了根据输入参数给出运算结果外,不做其他任何影响(输出,读写,抛出异常,修改变量等),就称为没有副作用的。
不修改状态
引用透明
优点:
代码简洁,开发速度快
接近自然语言,易理解
易于代码管理
适合并发编程
适用于热升级
函数也是一个值,允许把函数本身作为参数传入另一个函数,还允许返回一个函数。
Last updated
Was this helpful?