Scala

来源

取名来源于Scalable Language,是一门多范式的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。

Scala运行于Java平台(Java虚拟机 JVM),并兼容现有的Java程序。

Scala的编译模型(独立编译,动态类加载)与Java一样,所以Scala代码可以调用Java类库。

特性

  • 支持的编程范式

    • 面向对象特性

      1. 每个值都是对象,包括基本数据类型,连函数也是对象

      2. 类可以被子例化,而且Scala还提供了基于mixin的组合(mixin-based composition)

    • 函数式编程

      1. 函数当成值来用

      2. 匿名函数

      3. 高阶函数

      4. 嵌套多层函数

      5. 柯里化

  • 静态类型,类型系统通过编译时检查,保证代码的安全性和一致性

    • 泛型类别

    • 协变和逆变

    • 标注

    • 类型参数的上下限约束

    • 把类别和抽象类型作为对象成员

    • 复合类型

    • 引用自己时显式指定类型

    • 视图

    • 多态方法

  • 扩展性

    1. 任何方法可用作前缀或后缀操作符

    2. 可以根据预期类型自动构造闭包

  • 并发性

函数式编程

函数式编程(英语:functional programming)是一种编程范式,它将电脑运算视为函数运算,并且避免使用程序状态以及易变对象。其中,λ演算(lambda calculus)为该语言最重要的基础。而且,λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。

比起指令式编程,函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。

特点

  • 以表达式为中心

  • 无副作用

    • 只用纯函数来构造程序,

    • 一个函数在执行过程中除了根据输入参数给出运算结果外,不做其他任何影响(输出,读写,抛出异常,修改变量等),就称为没有副作用的。

  • 不修改状态

  • 引用透明

优点:

  • 代码简洁,开发速度快

  • 接近自然语言,易理解

  • 易于代码管理

  • 适合并发编程

  • 适用于热升级

函数也是一个值,允许把函数本身作为参数传入另一个函数,还允许返回一个函数。

Last updated

Was this helpful?